numpy 按列对矩阵排序

iswrvxsc  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(146)

我有这个矩阵:

matrix:

[['I' 'N' 'T' 'E' 'R' 'E' 'S' 'T' 'I' 'N' 'G']

['D' 'G' 'F' 'F' 'G' 'D' 'A' 'A' 'D' 'V' 'A']

['A' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ']]

要这样排序,在不改变以下行按字母顺序的位置的情况下,只需要第一行:

matrix

[['E' 'E' 'G' 'I' 'I' 'N' 'N' 'R' 'S' 'T' 'T']

 ['F' 'D' 'A' 'D' 'D' 'G' 'V' 'G' 'A' 'F' 'A']

 [' ' ' ' ' ' 'A' ' ' ' ' ' ' ' ' ' ' ' ' ' ']]

有什么办法可以让我和numpy一起做吗?

tnkciper

tnkciper1#

假设输入如下:

array([['I', 'N', 'T', 'E', 'R', 'E', 'S', 'T', 'I', 'N', 'G'],
       ['D', 'G', 'F', 'F', 'G', 'D', 'A', 'A', 'D', 'V', 'A'],
       ['A', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']],
      dtype='<U1')

使用索引和np.argsort

out = matriz_senha[:, np.argsort(matriz_senha[0])]

输出量:

array([['E', 'E', 'G', 'I', 'I', 'N', 'N', 'R', 'S', 'T', 'T'],
       ['F', 'D', 'A', 'D', 'D', 'G', 'V', 'G', 'A', 'F', 'A'],
       [' ', ' ', ' ', 'A', ' ', ' ', ' ', ' ', ' ', ' ', ' ']],
      dtype='<U1')

相关问题