Numpy: Должен ли я использовать newaxis или None? - PullRequest
80 голосов
/ 03 июня 2009

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

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

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

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

1 Ответ

92 голосов
/ 03 июня 2009

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

In [1]: import numpy

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...