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