簡體   English   中英

如何對二維整數數組進行排序? 在 python 3 與 numpy

[英]How to sort a 2 dimention array of integers? In python 3 with numpy

我如何對這樣的數組進行排序: arr=[[2,1,1,2,3,3],[1,1,2,3,2,2],[1,2,1,3,2,2]]進入sorted_arr=[[1,1,2,3,2,2],[1,2,1,3,2,2],[2,1,1,2,3,3]]

那不是我的代碼的一部分,它只是我需要的一個例子。 我有一個數組,上面有很多 arrays 和整數,整數是 1,2,3 我想對它進行排序,例如,一個數組是 111111111 並且在主數組的中間,我想要它在開始

邏輯是,在我的真實代碼中我有 2 arrays 並且我比較它們,所以我有一個嵌套循環,為了讓它更快,如果一個非常接近的元素在開始它會加快我的代碼,所以這就是為什么我要對它進行排序,該數組有很多 arrays,其中包含拆分的整數,所以我想對 arrays 進行排序,就像 integer 將是 1

sorted(arr) 

為我工作。 你試過了嗎?

根據你的描述,我猜你想通過將列解釋為primary-order,secondary-order等鍵來對行進行按列排序。如果是這種情況, numpy.lexsort可以做得很好。

試試這個代碼

import numpy as np

arr = np.array([[2,1,1,2,3,3],
                [1,1,2,3,2,2],
                [1,2,1,3,2,2]])
argsorted = np.lexsort(arr.transpose()[::-1])
print(arr[argsorted])

您可以輕松地將arr[argsorted]轉換為 list by list(arr[argsorted])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM