2014-10-10 149 views
0

我有一個2D numpy數組,我想根據第一列值對行進行排序。麻煩的是它被格式化的方式:按行排序numpy數組和基於原始數組的排序匹配值

列我排序方式:0,1,2,3,4,0,1,2,3,4,0,1,2,3,4等 - >你可以看到它重複自己

基本上我想組1s,然後2s,然後3s,然後4s。匹配值的順序很重要:我希望第一個'1'行是第一個出現在未排序數組中的數據,接着是下一個出現的那一行,等等。我使用以下命令: sortedData = myData [myData [:,0] .argsort()]

不幸的是,它似乎並沒有根據數組的原始順序排列匹配列。我是否可以啓用某些選項來啓用此功能?

謝謝!

回答

2

您可以使用kind參數更改argsort所使用的排序算法。

使用

sortedData= myData[myData[:,0].argsort(kind='mergesort')] 

維護平等項目的順序。 (Merge sort穩定的排序算法。)