np.stack numpy的stack函数
2维数组和3维数组的stack操作是有所区别的:
两个2维数组的stack操作:
import numpy as np
array_A = np.array([[1,2],[3,4]])
print(f"array_A为:{array_A}")
print(f"array_A的维度为:{array_A.shape}")
array_B = np.array([[5,6],[7,8]])
print(f"array_B为:{array_A}")
print(f"array_B的维度为:{array_A.shape}")
stacked_1 = np.stack([array_A, array_B], axis=1)
print(f"stacked_1为:{stacked_1}")
print(f"stacked_1的维度为:{stacked_1.shape}")
stacked_0 = np.stack([array_A, array_B], axis=0)
print(f"stacked_0为:{stacked_0}")
print(f"stacked_0的维度为:{stacked_0.shape}")
输出结果:
array_A为:[[1 2][3 4]]
array_A的维度为:(2, 2)
array_B为:[[1 2][3 4]]
array_B的维度为:(2, 2)
stacked_1为:[[[1 2][5 6]][[3 4][7 8]]]
stacked_1的维度为:(2, 2, 2)
stacked_0为:[[[1 2][3 4]][[5 6][7 8]]]
stacked_0的维度为:(2, 2, 2)
两个3维数组的stack操作:
import numpy as np
array_A = np.array([[[1,2],[3,4]]])
print(f"array_A为:{array_A}")
print(f"array_A的维度为:{array_A.shape}")
array_B = np.array([[[5,6],[7,8]]])
print(f"array_B为:{array_A}")
print(f"array_B的维度为:{array_A.shape}")
stacked_1 = np.stack([array_A, array_B], axis=1)
print(f"stacked_1为:{stacked_1}")
print(f"stacked_1的维度为:{stacked_1.shape}")
stacked_0 = np.stack([array_A, array_B], axis=0)
print(f"stacked_0为:{stacked_0}")
print(f"stacked_0的维度为:{stacked_0.shape}")
输出结果:
array_A为:[[[1 2][3 4]]]
array_A的维度为:(1, 2, 2)
array_B为:[[[1 2][3 4]]]
array_B的维度为:(1, 2, 2)
stacked_1为:[[[[1 2][3 4]][[5 6][7 8]]]]
stacked_1的维度为:(1, 2, 2, 2)
stacked_0为:[[[[1 2][3 4]]][[[5 6][7 8]]]]
stacked_0的维度为:(2, 1, 2, 2)