np.concatenate和Numpy中的轴
concatenate((a1, a2, ...), axis=0)
沿着指定的轴将指定的数组序列进行拼接
注意:要拼接的原数组形状除了指定的拼接轴可以不同外,其他轴的形状必须都要相同
第一个参数必须是一个多个数组的元组或者列表
第二个参数默认是 axis = 0,即按数组的0轴进行纵向的拼接注:一般axis = 0,就是对该轴向的数组进行操作。
NUMPY ARRAY AXES以’0’开头
NumPy中的数组轴是编号的,从0开始类似于Python中元组,列表,字符串的索引
在Numpy中的函数使用轴
建议:注意轴参数控制的内容
在np.sum(),np.mean(),np.min(),np.median()和其他统计函数会聚合您的数据(即,当您在带有axis参数的二维数组上使用np.sum()时,它会将二维数组折叠为一维数组。它会折叠数据并减少维度)
将Numpy函数与axis参数一起使用时,指定的轴是折叠的轴
np_array_2d = np.arange(0, 6).reshape([2,3])
print(np_array_2d)
[[0 1 2]
[3 4 5]]
np.sum(np_array_2d, axis = 0)
输出:array([3, 5, 7])
当我们设置axis = 0时,该函数实际上对列进行求和
正如我之前提到的,axis参数指示哪个轴折叠。
当我们设置axis = 0时,我们不会对行进行求和;我们正在聚合数据,以便我们折叠行…我们将轴0折叠。
当我们将axis参数与np.concatenate()函数一起使用时,axis参数定义了我们堆叠数组的轴
np_array_1s = np.array([[1,1,1],[1,1,1]])
np_array_9s = np.array([[9,9,9],[9,9,9]])
array([[1, 1, 1],
[1, 1, 1]])
array([[9, 9, 9],
[9, 9, 9]])
#*use NumPy concatenate with axis = 0*
np.concatenate([np_array_1s, np_array_9s], axis = 0)
#输出
array([[1, 1, 1],
[1, 1, 1],
[9, 9, 9],
[9, 9, 9]])
#*use NumPy concatenate with axis = 1*
np.concatenate([np_array_1s, np_array_9s], axis = 1)
#输出
array([[1, 1, 1, 9, 9, 9],
[1, 1, 1, 9, 9, 9]])
警告:1维阵列的工作方式不同
一维NUMPY数组只有一个轴(即axis=0)
np_array_1s_1dim = np.array([1,1,1])
np_array_9s_1dim = np.array([9,9,9])
[1 1 1]
[9 9 9]
np.concatenate([np_array_1s_1dim, np_array_9s_1dim], axis = 0)
array([1, 1, 1, 9, 9, 9])
这与函数在二维数组上的工作方式不同。如果我们在二维数组上使用np.concatenate()和axis = 0,则数组将垂直连接在一起。
在这种情况下,该功能正常工作。NumPy连接是沿着轴0连接这些数组。在1-d数组中,轴0不像在2维数组中那样指向“向下”。
np.concatenate([np_array_1s_1dim, np_array_9s_1dim], axis = 1)
IndexError: axis 1 out of bounds [0, 1)
概括:Numpy轴是我们执行操作的方向
参考:https://www.jianshu.com/p/f4e9407f9f9d
来源:CSDN
作者:lbj23hao1
链接:https://blog.csdn.net/lbj23hao1/article/details/103695077