在numpy中,可以在切片语法中使用'newaxis'对象来创建长度为1的轴,例如:
import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)
documentation states也可以使用None
代替newaxis
,效果完全相同。
有没有理由选择一个而不是另一个?是否有任何一般偏好或风格指南?我的印象是newaxis
更受欢迎,可能是因为它更明确。那么有什么理由允许None
?
答案 0 :(得分:92)
None
是允许的,因为numpy.newaxis
只是None
的别名。
In [1]: import numpy
In [2]: numpy.newaxis is None
Out[2]: True
作者可能选择了它,因为它们需要一个方便的常量,None
可用。
至于为什么你应该更喜欢newaxis
而不是None
:主要是因为它更明确,部分原因是有一天numpy
作者可能会将其更改为{{1}以外的其他内容}。 (他们不打算,也可能不会,但没有充分理由选择None
。)