В 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
это лучше оптимизация скорости выполнения, он может дать очень крошечное преимущество по времени. Но обычно вам следует предпочестьnp.newaxis
.newaxis = object()
(или эквивалент уровня C), я не понимаю ... использованиеNone
весьма подвержено ошибкам. У меня была функция с ошибкой (голая,return
которая должна была возвращать логический массив), и я начал получать ошибки из-за несоответствия формы. Мне потребовалось время, чтобы понять, что индексирование с помощьюNone
не просто вызывает расширениеIndexError
. Если бы они использовали «новое» значение дозорного, я бы избежал 30 минут попыток разобраться в ошибке ...