首页 > 解决方案 > 从行和列到列和行的顺序矩阵

问题描述

我正在开发一个软件,它有一个由 2 个数组组成的矩阵。如何将矩阵从行和列排序到列和行?现在这是我的输出:[[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)

标签: python

解决方案


看起来你想转置你的矩阵。

你可以简单地做:

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]])

推荐阅读