当前位置: 首页 > news >正文

一周学会Pandas2 Python数据处理与分析-NumPy数组重建

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

尺寸修改reshape方法

数组在创建的时候就已经有了,但是在后续过程中也可以进行重建,在之前使用的 reshape函数就是对数组进行尺寸上的修改。 在这里需要说明的是 reshape 中的参数就是重建后的尺寸,但是对于一些时候,不知道所有轴的尺寸就可以使用-1来进行自动调整。

a = np.arange(24)
print(a)
print(a.reshape(3, 2, -1))

运行结果:

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
[[[ 0  1  2  3]
  [ 4  5  6  7]]
​
 [[ 8  9 10 11]
  [12 13 14 15]]
​
 [[16 17 18 19]
  [20 21 22 23]]]

对于一个三维的数组,可以发现其 第三个轴有 4个数,但这个数是自动算出来的。

合并与拆分

对于多个数组也可以进行合并与拆分操作

a4 = np.arange(12).reshape(3, 4)
b4 = np.arange(12, 24).reshape(3, 4)
print("a4", a4)
print("b4", b4)
print("垂直合并", np.vstack((a4, b4)))
print("水平合并", np.hstack((a4, b4)))

运行结果:

a4 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
b4 [[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]
垂直合并 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]
水平合并 [[ 0  1  2  3 12 13 14 15]
 [ 4  5  6  7 16 17 18 19]
 [ 8  9 10 11 20 21 22 23]]

当然这里是简单的一个水平合并和竖直合并,一个隐形的条件就是竖直合并时,需要保证两个数组第二个轴的大小一致,并且保持不变,而水平合并时需要保证两个数组的第一个轴的大小一致。 或者对应一般的合并也可以使用concatenate([a,b],axis=),把两个数组按照一定的轴合并,在哪个轴合并就是哪个轴的尺寸发生变化。

a4 = np.arange(12).reshape(3, 4)
b4 = np.arange(12, 24).reshape(3, 4)
print("a4", a4)
print("b4", b4)
print("第一轴合并:", np.concatenate([a4, b4], axis=0))
print("第二轴合并:", np.concatenate([a4, b4], axis=1))

运行结果:

a4 [[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
b4 [[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]
[[ 0  1  2  3 12 13 14 15]
 [ 4  5  6  7 16 17 18 19]
 [ 8  9 10 11 20 21 22 23]]

对于两个数组可以进行合并,那么一个数组也可以拆成两个数组,使用split(array,[],axis=)进行拆分:

a5 = np.arange(36).reshape(2, 2, 9)
print("a5", a5)
b5, c5, d5 = np.split(a5, [3, 6], axis=2)
print("b5", b5)
print("c5", c5)
print("d5", d5)

运行输出:

a5 [[[ 0  1  2  3  4  5  6  7  8]
  [ 9 10 11 12 13 14 15 16 17]]
​
 [[18 19 20 21 22 23 24 25 26]
  [27 28 29 30 31 32 33 34 35]]]
b5 [[[ 0  1  2]
  [ 9 10 11]]
​
 [[18 19 20]
  [27 28 29]]]
c5 [[[ 3  4  5]
  [12 13 14]]
​
 [[21 22 23]
  [30 31 32]]]
d5 [[[ 6  7  8]
  [15 16 17]]
​
 [[24 25 26]
  [33 34 35]]]

首先需要说明的是,split的参数有 要拆分的数组,在哪个位置进行拆分,[3,6]表示在3,4之间,6,7之间进行拆分, axis=2 表示对第三个轴进行拆分。

相关文章:

  • 【力扣hot100题】(055)子集
  • 开源情报中批判性思维因人工智能而逐渐衰落
  • 声音定位系统的原理及实现
  • 【Python使用】嘿马云课堂web完整实战项目第2篇:CMS页面管理需求,后端工程搭建【附代码文档】
  • ROS2学习笔记1-起步的程序
  • JVM 垃圾回收器是如何判断一个对象是否要回收?
  • 使用NVM下载Node.js管理多版本
  • Logo语言的扩展运算符
  • Linux学习笔记——零基础详解:什么是Bootloader?U-Boot启动流程全解析!
  • leetcode刷题日记—— Z 字形变换
  • BGP路由协议之属性2
  • RabbitMQ运维
  • 面试常被问道OSPF的问题
  • 针对Qwen-Agent框架的源码阅读与解析:FnCallAgent与ReActChat篇
  • uniapp小程序登录失效后操作失灵问题
  • 电脑有时出现检测不到音箱设备怎么办?
  • redis学习笔记
  • JS 事件委托
  • 数据结构值ST表的详细讲解浅显易懂
  • WPF插入背景图
  • 两江新区建设管理局网站/如何做好线上营销
  • 报告格式范文/推广seo网站
  • 怎么改版网站/百度app下载安装 官方
  • 网站app建站多少钱/网络广告营销经典案例
  • 高校网站安全建设方案/百度入驻绍兴
  • 天津 网站策划/网页广告