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

Множество массивов NumPy с использованием None

Это заставило меня немного почесывать голову. Я непреднамеренно нарезал массив с None и получал что-то другое, кроме ошибки (я ожидал ошибку). Вместо этого он возвращает массив с дополнительным размером.

>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
       [2, 3]])
>>> a[None]
array([[[0, 1],
        [2, 3]]])

Является ли это поведение преднамеренным или побочным эффектом? Если преднамеренно, есть ли какое-то обоснование для этого?

4b9b3361

Ответ 1

Использование None эквивалентно использованию numpy.newaxis, так что да, это намеренно. На самом деле, это одно и то же, но, конечно же, newaxis это лучше.

Документы:

Объект newaxis может использоваться во всех операциях нарезки для создания оси длины один. newaxis - это псевдоним "None", и "None" может использоваться вместо этого с тем же результатом.

Схожий вопрос ТАК.