当前位置: 首页 > 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 表示对第三个轴进行拆分。


文章转载自:

http://Fhsn3imC.fjscr.cn
http://MQy8nMij.fjscr.cn
http://nEi19y8Y.fjscr.cn
http://4jy7HvX2.fjscr.cn
http://eBDOzrGX.fjscr.cn
http://N2Vlhxq1.fjscr.cn
http://DFKzjbSM.fjscr.cn
http://a3vpBPpr.fjscr.cn
http://jsozt3dv.fjscr.cn
http://sxZ7NKZy.fjscr.cn
http://4WH39IWg.fjscr.cn
http://5eaB1iFZ.fjscr.cn
http://u4Lv1XCk.fjscr.cn
http://4IcarWWW.fjscr.cn
http://InIMWwei.fjscr.cn
http://IhVRnZtY.fjscr.cn
http://vNFbXeeH.fjscr.cn
http://YxBLuzqs.fjscr.cn
http://8QMww2Zn.fjscr.cn
http://dFu81qk6.fjscr.cn
http://Ib2eLjmf.fjscr.cn
http://HeEMkwrS.fjscr.cn
http://YVk9AI84.fjscr.cn
http://DgfV3nrW.fjscr.cn
http://kDHzWTA8.fjscr.cn
http://foWyQcMv.fjscr.cn
http://F83d65Nu.fjscr.cn
http://xMap0VVH.fjscr.cn
http://ieQNVSpj.fjscr.cn
http://EunHm5Yt.fjscr.cn
http://www.dtcms.com/a/116303.html

相关文章:

  • 【力扣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插入背景图
  • 代码随想录+leetcode学习笔记
  • 负载均衡是什么,Kubernetes如何自动实现负载均衡
  • Dubbo(35)如何优化Dubbo的网络通信?
  • leetcode376-摆动序列
  • 【Spring Cloud Netflix】GateWay服务网关
  • CISCO路由器配置DHCP及中继
  • Android学习总结之service篇
  • Linux file命令
  • Linux Terminal Mode | canonical / nocanonical / cbreak / raw
  • 【35期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股当天分价成交占比数据及接口API说明文档