這似乎被問了很多次,但是我發現現在不適用的答案。讓我們簡單的,在這裏我有一個numpy的矩陣按目標列對numpy矩陣中的所有行進行排序
data = np.matrix([[9, 8],
[7, 6],
[5, 7],
[3, 2],
[1, 0]])
然後排序第二列如下
[[1, 0],
[3, 2],
[7, 6],
[5, 7],
[9, 8]])
我嘗試了很多的例子一樣Python Matrix sorting via one column但他們沒有工作。
我想知道也許是因爲答案是多年前發佈的,不適用於最新的Python?我的Python是3.5.1。我的失敗試驗
例子:
data = np.matrix([[9, 8],
[7, 6],
[5, 7],
[3, 2],
[1, 0]])
temp = data.view(np.ndarray)
np.lexsort((temp[:, 1],))
print(temp)
print(data)
「不工作」是什麼意思,哪個代碼完全被試過,你知道np.matrix!= np.array? (我真的真的不認爲,如果他們使用基本的numpy東西,這些其他答案是過時的;這會因爲很多原因殺死numpy!) – sascha
在對你的問題再次看一眼:你的標題** Sorting numpy矩陣逐列**是誤導。第一個鏈接中的**工作**例子就是這樣做的,但根據您的示例,您只需要對矩陣內的列進行排序(而不重新排列相應的其他列)! – sascha
@sascha你說得對,所以我刪除了我的第二個鏈接。 「不工作」是指批准的答案不會對我的矩陣進行排序。我在那裏舉了一個例子。 – Windtalker