前言:高维数组真正"有意义的数"是最底层的两维。这篇文章中已经明确说明:2维以上的数组,真正"有实际意义数值"的是最底层的两维,甚至可以说是最底层的那一维!
所以:当多个3维数组需要合并时,已知它们的"最高维/第三维"是没有实际意义,只起计数作用。那么多个3维数组的合并,其实就是"最高维/第三维"这个"计数维"的数值增大而已!
例如:有4个(5, 20, 20)的3维数组,它们要合并在一起时,其实就变为:(5+5+5, 20, 20) = (15, 20, 20)的一个3维数组。
包:import numpy as np
函数:np.concatenate()
实现很简单,一个例子就明白:
import numpy as np
a1 = np.zeros( (5, 20, 20) ) + 1
a2 = np.zeros( (5, 20, 20) ) + 2
a3 = np.zeros( (5, 20, 20) ) + 3
a4 = np.zeros( (5, 20, 20) ) + 4
# 一边用一个列表汇总它们,纯粹是为了方便:
origin_x = [a1, a2, a3, a4]
# 合并:
array_x = np.concatenate( origin_x, axis = 0 )
# 结果:
array_x.shape
Out[4]: (20, 20, 20)
补充:np.concatenate()函数中的"axis参数"怎么理解:
其实很好理解:原来数据是3维的,即有3个维度,这3个维度的编号就是0、1、2(从左往右、从高到低);现在我们希望是在"最高维/第三维"合并,那axis就是0,即编号为0的那个维度。
注意:区分和这篇文章的不同:Numpy:2维数组的合并 —— 多一个最高维(3维)来记录
网友评论