numpy newaxis并不总是在我想要的地方附加新轴

时间:2015-02-05 21:41:54

标签: python arrays numpy

为什么np.newaxis始终将轴放在我放置的位置?见例:

import numpy as np 
M = np.array([[1,4],[2,5], [3,4]]) 
M[:,np.newaxis].shape
# returns (3, 1, 2)

1 个答案:

答案 0 :(得分:2)

根据描述newaxis的{​​{3}}:

  

添加的维度是newaxis对象在选择元组中的位置。

在您的示例中,newaxis位于元组的第二个位置,因此在那里插入了长度为1的新维度。

这类似于选择特定索引处的值。对于三维A,您可以使用A[:,0]从第二个轴而不是第三个轴检索索引0值。

如果要在元组的最后位置添加新轴,可以编写M[:,:,np.newaxis]或者使用省略号表示法:

>>> M[...,np.newaxis].shape
(3, 2, 1)