100

在 numpy 中,可以使用切片语法中的“newaxis”对象来创建长度为 1 的轴,例如:

import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)

文档指出,也可以使用None代替newaxis,效果完全相同。

有什么理由选择一个而不是另一个吗?是否有任何一般偏好或风格指南?我的印象是它newaxis更受欢迎,可能是因为它更明确。那么有什么理由None允许吗?

4

1 回答 1

112

None是允许的,因为numpy.newaxis它只是 . 的别名None

In [1]: import numpy

In [2]: numpy.newaxis is None
Out[2]: True

作者可能选择了它,因为他们需要一个方便的常量,并且None可用。

至于为什么你应该更喜欢newaxis:None主要是因为它更明确,部分原因是有一天numpy作者可能会将其更改为None. (他们不打算,也可能不会,但没有充分的理由更喜欢None.)

于 2009-06-03T15:05:52.140 回答