Почему нет np.newaxis
всегда добавлять ось, где я ее помещаю? Смотрите пример:numpy newaxis не всегда добавляет новую ось, где я хочу
import numpy as np
M = np.array([[1,4],[2,5], [3,4]])
M[:,np.newaxis].shape
# returns (3, 1, 2)
Почему нет np.newaxis
всегда добавлять ось, где я ее помещаю? Смотрите пример:numpy newaxis не всегда добавляет новую ось, где я хочу
import numpy as np
M = np.array([[1,4],[2,5], [3,4]])
M[:,np.newaxis].shape
# returns (3, 1, 2)
Согласно documents, описывающей newaxis
:
Добавленное измерение является положение объекта newaxis в кортеже выбора.
В вашем примере newaxis
находится во второй позиции кортежа, следовательно, там добавляется новое измерение длины 1.
Это аналогично выбору значения по определенному индексу. Для трехмерного A
вы должны использовать A[:,0]
для получения значения индекса 0
со второй оси, а не третьей оси.
Если вы хотите добавить новую ось в последней позиции кортежа, вы можете написать M[:,:,np.newaxis]
или в качестве альтернативы использовать многоточие обозначение:
>>> M[...,np.newaxis].shape
(3, 2, 1)
Великого ответ. Я был смущен, потому что я не знал, что второй «,» является необязательным в numpy, в отличие от R. Поэтому я думал, что «np.newaxis» находится в последней позиции вместо второй. – Heisenberg
Без проблем - рад, что это было полезно. –