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.

 

posted @ 2018-10-17 20:23  Parallax  阅读(371)  评论(0编辑  收藏  举报