Хотя я согласен с ответом Джона Цвинка, я хотел предоставить альтернативу на тот случай, если по какой-то причине вы вынуждены использовать индексацию (вместо нарезки).
OP говорит, что "a[1, :].reshape(1, a.size)
будетbreak ":
Вы можете добавить размеры в массивы numpy следующим образом:
b = a[1]
# array([3, 4, 5]
b = a[1][np.newaxis]
# array([[3, 4, 5]])
(Обратите внимание, что np.newaxis
это None
, но это намного большечитаемый для использования np.newaxis
)
Как указано в комментариях (@PaulPanzer и @Divakar), на самом деле существует много способов сделать то же самое (опять же, с помощью индексации вместо нарезки):
Эти копии не создаются (данные изменяются при каждом воздействии a
)
a[1, None]
a[1, np.newaxis]
a[1].reshape(1, a.shape[1]) # Use shape, not size
Эта копия создается (данные не зависят от a
)
a[[1]]