numpy多维数组维度及添加轴的理解

y = np.zeros((3, 4, 5))

array([[[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]],

       [[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]],

       [[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]]])

(numpy中默认都是行向量,没有列向量,当然你看成全部是列向量没行向量也可以)

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 #最外层为基本元素。# 一般用在聚合计算中。
axis=1#c次外层为基本元素。等价于axis=-1.

猜你喜欢

转载自blog.csdn.net/qq_42422981/article/details/83116706