提问者:小点点

从行和列到列和行排序矩阵


我正在开发一个软件,其中有一个矩阵由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)

共2个答案

匿名用户

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

您可以简单地执行以下操作:

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

匿名用户

如果不想使用numpy,可以这样做来转置一个2-D列表:

list(zip(*arr))