Матрица порядка от строк и столбцов к столбцам и строкам - PullRequest
0 голосов
/ 13 июля 2020

Я разрабатываю программное обеспечение, в котором матрица состоит из двух массивов. Как я могу упорядочить матрицу от строк и столбцов до столбцов и строк? Теперь это мой результат: [[0, 100, 200], [72.47668474230234, 99.31104557570733, 69.04810729404251], [963.5028550030322, 851.9302492678169, 320.99306624905734]]

Я хочу читать так: [[0, 72.47668474230234, 963.5028550030322], [100, 99.31104557570733, 851.9302492678169], [200, 69.04810729404251, 320.99306624905734]]

Это мой код:

x_vet = []
    for z in range(self.n_samples):
        x_vet.append(self.x_0 + self.freq*z)
    
    self.signals_data.append(x_vet)
    for i in range(len(self.signals_def)):
        minV = self.signals_def[i].minValue
        maxV = self.signals_def[i].maxValue
        y_vet = []            
        for j in range(self.n_samples):
            y_vet.append(minV+(maxV-minV)*random.random())
        self.signals_data.append(y_vet)
    print(self.signals_data)

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

Похоже, вы хотите транспонировать свою матрицу.

Вы можете просто сделать:

import numpy as np

x = np.array([[0, 100, 200], [72.47668474230234, 99.31104557570733, 69.04810729404251], [963.5028550030322, 851.9302492678169, 320.99306624905734]])

# array([[  0.        , 100.        , 200.        ],
#       [ 72.47668474,  99.31104558,  69.04810729],
#       [963.502855  , 851.93024927, 320.99306625]])

x_T = np.transpose(x)

# array([[  0.        ,  72.47668474, 963.502855  ],
#       [100.        ,  99.31104558, 851.93024927],
#       [200.        ,  69.04810729, 320.99306625]])
1 голос
/ 13 июля 2020

Если вы не хотите использовать numpy, вы можете сделать это, чтобы транспонировать двумерный список:

list(zip(*arr))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...