Numpy 数组高阶操作函数
发布时间:2023-07-03 09:23:57 所属栏目:教程 来源:
导读:Numpy 提供了一系列针对数组操作的高阶函数。其中一类比较常见的是数组的合并。
1. 数组的合并与堆叠
1.1 numpy.concatenate 函数
numpy.concatenate 函数用于沿指定轴连接两个或多个相同形状的数组。该函数的原
1. 数组的合并与堆叠
1.1 numpy.concatenate 函数
numpy.concatenate 函数用于沿指定轴连接两个或多个相同形状的数组。该函数的原
Numpy 提供了一系列针对数组操作的高阶函数。其中一类比较常见的是数组的合并。 1. 数组的合并与堆叠 1.1 numpy.concatenate 函数 numpy.concatenate 函数用于沿指定轴连接两个或多个相同形状的数组。该函数的原型如下: numpy.concatenate((a1, a2, ...), axis=) 参数说明如下: 参数 说明 a1,a2 … 相同类型的数组序列 axis 连接数组的轴的方向,默认值为0 案例 创建大小为 2×2 的二维数组 a 和 b: a = np.array([[,],[,]])b = np.array([[,],[,]]) 查看数组: print(数组a:)print(a)print(数组b:)print(b) 打印结果为: 数组a:[[ ] [ ]]数组b:[[ ] [ ]] 利用 concatenate 函数进行垂直方向的合并: np.concatenate((a, b), axis=)out:array([[, ], [, ], [, ], [, ]]) 上述语句实现了:沿着 axis=0(对于二维数组,显示为垂直)方向合并,合并的结果在垂直方向的维数扩充到 4,整个结果的数组大小为 4×2。 利用 concatenate 函数进行水平方向的合并: np.concatenate((a, b), axis=)out:array([[, , , ], [, , , ]]) 上述语句实现了:沿着 axis=1(对于二维数组,显示为水平)方向合并,合并的结果在水平方向的维数扩充到 4,整个结果的数组大小为 1×4。 通过观察上述过程,可以发现:concatenate 可以实现数组沿着某一轴向进行合并,合并后数组的维度保持不变。 案例 numpy.concatenate 函数可以一次性拼接多个数组: np.concatenate((a, b, a, b), axis=)out:array([[, , , , , , , ], [, , , , , , , ]]) concatenate 函数可以接收不定长的数组序列,并按照指定的轴进行合并。 1.2 numpy.stack函数 numpy.stack 函数沿指定轴连接数组序列,该函数的原型如下: numpy.stack((a1, a2, ...), axis=) 参数说明如下: 参数 说明 a1,a2 … 相同类型的数组序列 axis 连接数组的轴的方向,默认值为0 案例 仍然指定拼接方向为 axis=0 方向,观察与 concatenate 函数的区别: np.stack((a, b), axis=) 该语句实现了把数据 a 和 b 在 axis=0(最外层)增加一层,进行堆叠: array([[[, ],[, ]], [[, ],[, ]]]) 堆叠的结果为三维数组,其中 axis=0 方向(最外层)的组成元素分别对应为 a 和 b。 案例 指定拼接方向为 axis=1 方向,观察与 concatenate 函数的区别: np.stack((a, b), axis=) 该语句实现了把数据 a 和 b 在 axis=1 增加一层,再进行堆叠: array([[[, ],[, ]], [[, ],[, ]]]) 具体堆叠过程可以按照拆解为如下步骤: 数组 a 和 b分别由 2×2 扩充为 2×1×2,在 axis=1 的维度实现了扩充; 在扩充的轴上进行堆叠,即在 axis=1 的轴上进行堆叠。 1.3 numpy.hstack 函数 对于二维数组,在水平方向进行堆叠,但是数组的维度保持不变。函数效果等价于numpy.concatenate((a1, a2, …), axis=1)。 案例 利用 hstack 函数合并数组 a 和 b: np.hstack((a,b))out:array([[, , , ], [, , , ]]) 上述效果与 np.concatenate((a, b), axis=1) 完全一致。 1.4 numpy.vstack函数 对于二维数组,在垂直方向进行堆叠,但是数组的维度保持不变。函数效果等价于numpy.concatenate((a1, a2, …), axis=0)。 案例 利用 hstack 函数合并数组 a 和 b: np.vstack((a,b))out:array([[, ], [, ], [, ], [, ]]) 上述效果与np.concatenate((a, b), axis=0)完全一致。 2. 小结 本节讲述了数组合并与堆叠的几种常用方法,其中concatenate函数与stack函数需要在使用中指定具体的计算方向,而vstack和hstack则默认了合并方向,使用过程中注意区分。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |