Python преобразование одномерного массива в двумерный массив с помощью «строк» ​​или «столбцов» - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел бы контролировать, как array.reshape () заполняет новый массив. Например,

a = np.arange(12).reshape(3,4)
## array([[ 0,  1,  2,  3],
##   [ 4,  5,  6,  7],
##   [ 8,  9, 10, 11]]) 

, но я хотел бы иметь возможность заполнить массив по столбцам чем-то вроде:

a = np.arange(9).reshape(3,3, 'columnwise')
## array([[ 0,  3,  6,  9],
##   [ 1,  4,  7,  10],
##   [ 2,  5, 8, 11]]) 

Ответы [ 3 ]

2 голосов
/ 30 апреля 2020

Использование np.transpose.

import numpy as np

print(np.arange(9).reshape(3,3).transpose())

Вывод:

[[0 3 6]
 [1 4 7]
 [2 5 8]]
0 голосов
/ 30 апреля 2020
In [22]:  np.arange(12).reshape(3,4, order='F')                                                        
Out[22]: 
array([[ 0,  3,  6,  9],
       [ 1,  4,  7, 10],
       [ 2,  5,  8, 11]])
0 голосов
/ 30 апреля 2020

Если вы сделаете транспонирование оригинальной матрицы, вы получите желаемый эффект.

import numpy as np
a = np.arange(6).reshape(3,3).tranpose()

ИЛИ

a = np.arange(6).reshape(3,3).T
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...