Python: есть ли обратное для ndarray.flatten ('F')? - PullRequest
14 голосов
/ 23 февраля 2011

Например:

from numpy import *
x = array([[1,2], [3, 4], [5, 6]])
print x.flatten('F')
>>>[1 3 5 2 4 6]

Можно ли получить [[1,2], [3, 4], [5, 6]] из [1 3 5 2 4 6]?

Ответы [ 2 ]

16 голосов
/ 23 февраля 2011
>>> a = numpy.array((1, 3, 5, 2 ,4, 6))
>>> a.reshape(2, -1).T
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> 
6 голосов
/ 30 марта 2014

Это кажется немного более простым. Просто передайте исходную форму в форму.

import numpy as np
np.array([[1,2], [3, 4], [5, 6]]).flatten().reshape((3, 2))

array([[1, 2],
       [3, 4],
       [5, 6]])

И для вашего заказа на Фортране передайте 'F' для заказа на изменение формы:

import numpy as np
np.array([[1,2], [3, 4], [5, 6]]).flatten('F').reshape((3, 2), order='F')

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