2016-08-12 2 views
1

У меня есть матрица A формы (480, 640, 3), и я хотел бы использовать значения для заполнения другой матрицы B, формы (3, 480, 640). Я пробовал numpy.reshape(A, B.shape), но я думаю, что это не делает трюк.Как перенести один размер матрицы numpy?

В каком-то контексте размеры 480 и 640 - это высота и ширина кадра, а 3 - значения цвета (RGB).

(Я ищу эффективный способ сделать это, не куча вложенным для петель.)

ответ

1

Я думаю, что вы хотите поменять или свернуть ось. Давайте начнем с массива 3-D:

>>> mat = np.arange(24).reshape(2, 4, 3) 
>>> mat.shape 
(2, 4, 3) 

Теперь давайте изменить порядок осей с swapaxes:

>>> mat.swapaxes(0, 2).swapaxes(1, 2).shape 
(3, 2, 4) 

Или давайте кидать топоры:

>>> rolled = np.rollaxis(mat, 2) 
>>> rolled.shape 
(3, 2, 4) 
+0

Awesome! Мне нравится 'rollaxis()' verison. – BoltzmannBrain

Смежные вопросы