随机构造两个数组:
c = [[1,2,3,4],[5,6,7,8]]
d = [[10,20,30,40],[50,60,70,80]]
这两个数组没有形状,
print(c.shape)会报错
但是可以把这两个数组理解为(2,4)形状的数组,
或者是(–2,–4,–),短线待会儿用到
1.stack后,数组形状的变化
现在np.stack((c,d),axis = 0),相当于第一个短线被 ’2‘替换
>>> np.stack((c,d),axis = 0).shape
(2, 2, 4)
现在np.stack((c,d),axis = 1),相当于第二个短线被 ’2‘替换
np.stack((c,d),axis = 1).shape
(2, 2, 4)
现在np.stack((c,d),axis = 2),相当于第三个短线被 ’2‘替换
np.stack((c,d),axis = 2).shape
(2, 4, 2)
2.stack,元素坐标的变化
stack中,元素的坐标发生改变
看c中“5”元素的变化,stack之前,c[1,0]=5,或者c[–,1,–,0,–]=5
现在np.stack((c,d),axis = 2),把第二个短线换为0,新数组 A[1,0,0]=5;
看d中“50”元素的变化,stack之前,d[1,0]=50,或者d[–,1,–,0,–]
现在np.stack((c,d),axis = 2),把第二个短线换为1,新数组 A[1,0,1]=50;
np.stack((c,d),axis = 2)
array([[[ 1, 10],
[ 2, 20],
[ 3, 30],
[ 4, 40]],
[[ 5, 50],
[ 6, 60],
[ 7, 70],
[ 8, 80]]])
3.总结:
stack中,axis是轴的意思,这个轴可以理解为新数组形状的变化(对应标题1),也可以理解为坐标中的空白位置(对应标题2),axis代表在某一维度进行操作,这个维度就是前面的短线