Подтвердить что ты не робот

Numpy: Должен ли я использовать newaxis или None?

В numpy можно использовать объект newaxis в синтаксисе среза для создания оси длины один, например:

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

В документе указано, что можно использовать None вместо newaxis, эффект точно такой же.

Есть ли какая-то причина выбора одного над другим? Есть ли общий подход или руководство по стилю? Мое впечатление, что newaxis более популярен, возможно, потому, что он более явный. Итак, есть ли причина, по которой разрешено None?

4b9b3361

Ответ 1

None разрешен, потому что numpy.newaxis является просто псевдонимом для None.

In [1]: import numpy

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

Авторы, вероятно, выбрали это, потому что им нужна удобная константа, и None был доступен.

Для чего вам следует предпочесть newaxis over None: в основном это потому, что он более явный, а отчасти потому, что когда-нибудь авторы numpy могут изменить его на нечто, отличное от None. (Они не планируют и, вероятно, не будут, но нет веских оснований предпочитать None.)