numpy多维数组维度及添加轴的理解
1 y = np.zeros((3, 4, 5)) 2 3 #output: 4 array([[[0., 0., 0., 0., 0.], 5 [0., 0., 0., 0., 0.], 6 [0., 0., 0., 0., 0.], 7 [0., 0., 0., 0., 0.]], 8 9 [[0., 0., 0., 0., 0.], 10 [0., 0., 0., 0., 0.], 11 [0., 0., 0., 0., 0.], 12 [0., 0., 0., 0., 0.]], 13 14 [[0., 0., 0., 0., 0.], 15 [0., 0., 0., 0., 0.], 16 [0., 0., 0., 0., 0.], 17 [0., 0., 0., 0., 0.]]])
size=(a,b,c)
维度==size中参数的个数
a指最外层1(只看最外层括号)看本层元素个数,本例中指有两层括号的元素个数
b指只看次层2层括号内本层元素个数,本例中指有一层括号的元素个数
c指只看3层最内层本层元素个数。,无括号的元素个数。
**[ ]**代表维度,增加一层括号即增加一维。
y[:,np.newaxis, : , :] #意思是在第二层添加新的维度,即加一层**[ ]**.对应的shape内多了*"1”*.
由已知y.shape=(3,4,5),则y[:,np.newaxis, : , :].shape=(3,1,4,5)
np.newaxis用途:当数组插入新的维度后,shape改变,在做运算时由于braodcasting作用,导致数组沿行复制列向量或沿列复制行向量
沿行复制列向量:[ : ,np.newaxis, : ] #np.newaxis在第1个维度
沿列复制行向量:[np.newaxis : ,:] #np.newaxis在第0个维度
axis=0 #第0维。# 一般用在聚合计算中。
axis=1#第1维。等价于axis=-1.