python教程,如何理解numpy的ndarray数组堆叠相关函数?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
官方的说法是堆叠数组,苏南大叔的个人理解是数组合并,本文中涉及的这些操作的区别就在于堆叠的方式不同。涉及的方法有:.hstack()
、.vstack()
、.dstack()
、.column_stack()
、.row_stack()
、.concatenate()
。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验文章。测试环境:win10
,python@3.11.0
,numpy@1.24.2
,pandas@1.5.3
。
操作对象
这里定义了三个ndarray
变量,ndarray
变量的形状都是一样的。代码中是对三个ndarray
变量进行了合并堆叠拼接,但是也可以两个一起合并,或者更多个一起合并,增加参数到方法的第一个tuple
变量里面即可。
import numpy as np
a = np.array([["苏", "南"], ["大", "叔"]])
b = np.array([["技", "术"], ["博", "客"]])
c = np.array([["号", "好"], ["豪", "?"]])
情况一,类型h,横向堆叠
和横向堆叠有关的函数是:.hstack()
、.column_stack()
、.concatenate(axis=1)
。
测试代码如下:
s1 = np.hstack((a, b, c))
s2 = np.column_stack((a, b, c))
s3 = np.concatenate((a, b, c), axis=1)
输出的结果是这样的:
情况二,类型v,竖向堆叠
和横向堆叠有关的函数是:.vstack()
、.row_stack()
、.concatenate(axis=0)
。
测试代码如下:
s4 = np.vstack((a, b, c))
s5 = np.row_stack((a, b, c))
s6 = np.concatenate((a, b, c), axis=0)
输出的结果是这样的:
情况三,类型d,[丢数据]堆叠
最后一种情况是.dstack()
,数据会有所丢失,不知道这个方法会用到什么地方。
测试代码如下:
s7 = np.dstack((a, b, c))
输出的结果是这样的:
总结
不想再细节上分析了,头疼,所以就这样草草结案吧。哈哈哈,大家自己研究吧。更多烧脑python
文章,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。