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

StackOverflow https://stackoverflow.com/questions/944863

  •  09-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

In [1]: import numpy

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top