簡體   English   中英

根據第一列對二維數組的行進行排序

[英]Sort rows of a 2D array, based on the first column

我想在 Python 3 中根據第一列的元素對二維數組的行進行排序。例如,如果

    x = array([[ 5. ,  9. ,  2. ,  6. ],
               [ 7. , 12. ,  3.5,  8. ],
               [ 2. ,  6. ,  7. ,  9. ]])

然后我需要排序的數組

    x = array([[ 2. ,  6. ,  7. ,  9. ],
               [ 5. ,  9. ,  2. ,  6. ],
               [ 7. , 12. ,  3.5,  8. ]])

我怎樣才能做到這一點? 在這里提出並回答類似的問題,但它對我不起作用。

以下應該工作:

import numpy as np
x = np.array([[ 5. ,  9. ,  2. ,  6. ],
               [ 7. , 12. ,  3.5,  8. ],
               [ 2. ,  6. ,  7. ,  9. ]])

x[x[:, 0].argsort()]
Out[2]:
array([[ 2. ,  6. ,  7. ,  9. ],
       [ 5. ,  9. ,  2. ,  6. ],
       [ 7. , 12. ,  3.5,  8. ]])

文檔: numpy.argsort

#using sorted    
x = ([[5.,9.,2.,6. ], [7.,12.,3.5,8.], [2.,6.,7.,9.]])
x = sorted(x, key=lambda i: i[0]) #1st col 
print(x)

暫無
暫無

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

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