【发布时间】:2021-12-13 06:55:55
【问题描述】:
我想看看numpy.argsort() 是如何工作的。
-
在文档中,
numpy.argsort()的来源在numpy.core.fromnumeric.py。没关系。 https://numpy.org/doc/stable/reference/generated/numpy.argsort.html -
core.fromnumeric.argsort()有点复杂。
不管装饰器如何,fromnumeric.argsort(arr)返回_wrapfunc(arr, "argsort")然后返回arr.argsort()。没问题。
假设arr是numpy.ndarray,它可能在array_api.__init__.py。 https://github.com/numpy/numpy/blob/v1.21.0/numpy/core/fromnumeric.py -
array_api.argsort()来自array_api._sorting_functions.argsort()。好的。https://github.com/numpy/numpy/blob/main/numpy/array_api/__init__.py -
_sorting_functions.argsort()调用numpy.argsort()。这就是我一开始想要的。 https://github.com/numpy/numpy/blob/main/numpy/array_api/_sorting_functions.py
额外
-
在
numpy.__init__.pyi,numpy.argsort()来自core.fromnumerichttps://github.com/numpy/numpy/blob/main/numpy/__init__.pyi1.和5.是同一个东西。
是循环引用吗?虽然我知道这行得通。 it might be in array_api.__init__.py. 中的 2. 错了吗?那么,该实现的实际位置在哪里?
附言
当return_index=True 时,我认为np.unique 很慢。我想np.unique 获得排序数组,但我发现np.unique 调用np.argsort。然后,我尝试将np.argsort 与np.sort 区别开来,以便我需要np.argsort 的详细信息。
一开始我不得不这么说。
【问题讨论】:
-
您在寻找
array_argsort还是PyArray_ArgSort? -
@Brian 非常感谢!这可能就是我想要的。我可以再问两个问题吗?
1. 单轴阵列也是多阵列吗? 2.numpy.argsort与那些C代码有什么关系?(这是关于NumPy基础的问题,超出了原问题的范围)
标签: python numpy numpy-ndarray numpy-ufunc