Python: преобразование матрицы в вектор определенной формы - PullRequest
0 голосов
/ 26 мая 2018

У меня есть матрица 2x4 в форме:

m = [[1,2,3,4],
     [5,6,7,8]]

a Я пытаюсь получить вектор 8x1 в форме:

m_new = [1,5,2,6,3,7,4,8]

Будет ли функция reshape ()быть в состоянии сделать что-то подобное?К сожалению, использование

m_new = m.reshape(8,1)

, похоже, не справляется с этой задачей, но, надеюсь, в измененном виде есть другие настройки, которые могут этого добиться.

1 Ответ

0 голосов
/ 26 мая 2018

Вы ищете параметр order, который можно применить практически к любому методу, который numpy использует для выравнивания многомерных массивов.

Из документации :

order: {'C', 'F', 'A'}, необязательно

  • 'F' означает чтение / запись элементов с использованием Fortran-как порядок индексации, причем первый индекс меняется быстрее всего, а последний индекс меняется медленнее.

Настройка

m = np.arange(1, 9).reshape(-2, 4)

Примеры:

m.reshape(8, order='F')

m.flatten(order='F')

m.ravel(order='F')

Все результаты в:

array([1, 5, 2, 6, 3, 7, 4, 8])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...