我有這個矩陣:
matriz_senha:
[['I' 'N' 'T' 'E' 'R' 'E' 'S' 'T' 'I' 'N' 'G']
['D' 'G' 'F' 'F' 'G' 'D' 'A' 'A' 'D' 'V' 'A']
['A' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ']]
想這樣排序,不改變后面幾行字母順序的位置,只改變第一行:
matriz senha:
[['E' 'E' 'G' 'I' 'I' 'N' 'N' 'R' 'S' 'T' 'T']
['F' 'D' 'A' 'D' 'D' 'G' 'V' 'G' 'A' 'F' 'A']
[' ' ' ' ' ' 'A' ' ' ' ' ' ' ' ' ' ' ' ' ' ']]
有什么辦法可以用 numpy 做到這一點嗎?
uj5u.com熱心網友回復:
假設這個輸入:
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')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/534912.html
上一篇:如何在python中用輸入值對角線創建一個到n的矩陣
下一篇:我想從numpy中洗掉'
