Включает в себя: Должен ли я использовать newaxis или нет?


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

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

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

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

1 72

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.)