numpy.argsort详解
numpy.argsort
-
用例:
numpy.argsort(a, axis=-1, kind=None, order=None) -
功能:
返回數組排序后的元素索引值。
根據kind指定的算法對數組沿著axis軸進行排序。其返回值的形狀和a一致,返回值內容為排序后元素在原始數組中的索引。 -
參數
| a | 數組型變量 | 被排序的數組。 |
| axis | 整型或None,可選參數 | 指定沿著哪個軸排序。默認值是-1即最后一維。若為None,則會將數組拉伸為一維。 |
| kind | {‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 可選參數 | 排序算法,默認為’quicksort’。注意:'stable’和’mergesort’的后端都是使用timsort算法,并且在通常情況下, 算法的計算結果會隨數值類型的不同而發生改變。保留’mergesort’參數是為了向后兼容。 |
| order | 字符串、字符串組成的列表,可選參數 | 當數組a定義了字段時,此參數指定先比較哪個字段再比較哪個字段。通過字符串可以單一指定某個字段, 并且并不是所有字段均需被指定,未被指定的字段也會參與排序(按照他們在dtype中的出現順序進行排序)。 |
- 返回值
| index_array | n維數組或整數 | 將a沿著指定軸排序后其索引組成的數組。若a為一維數組,a[index_array]生成排序后的a數組。 更一般的,無論a為多少維數組,我們均可使用np.take_along_axis(a, index_array, axis=axis)生成排序后的a數組 |
-
備注
有關不同排序算法的說明,請參閱sort。
NumPy 1.4.0及以后的版本中,argsort可以對包含實數、復數、空值的數組進行排序。在sort中詳細闡述了增強的排序算法。 -
示例:
一維數組的排序結果:[1 2 0]
被排序的數組為:
[[0 3]
[2 2]]
列方向的排序索引為:
[[0 1]
[1 0]]
列方向的排序結果為:
[[0 2]
[2 3]]
行方向的排序索引為:
[[0 1]
[0 1]]
行方向的排序結果為:
[[0 3]
[2 2]]
多維數組拉伸為一維后排序的索引為:(array([0, 1, 1, 0], dtype=int64), array([0, 0, 1, 1], dtype=int64))
將多維數組拉伸為一維后進行排序:[0 2 2 3]
原始數組為:
array([(1, 0), (0, 1)], dtype=[(‘x’, ‘<i4’), (‘y’, ‘<i4’)])
先對比x字段,再對比y字段:[1 0]
先對比y字段,再對比x字段:[0 1]
github鏈接
https://github.com/wzy6642/numpy-translate
總結
以上是生活随笔為你收集整理的numpy.argsort详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: numpy.triu详解
- 下一篇: numpy.sum详解