我已经尝试通过阅读numpy.argpartition
的文档来理解它,但仍然感到困惑。
在the documentation中,据说
它返回一个索引数组,该索引以分区顺序沿给定轴索引数据。
我在这句话中没有得到的是“ 按分区顺序”。
另外,当我在示例中使用np.argpartition
时,对我而言,没有任何逻辑。
>>> a = np.array([352, 538, 215, 400, 631, 498, 586, 731])
>>> np.argpartition(a, 2)
array([2, 0, 3, 1, 4, 5, 6, 7])
>>> np.argpartition(a, 3)
array([2, 0, 3, 5, 1, 4, 6, 7])
我期望的是一个具有数组a排序值索引的数组。
有人可以解释/阐明np.argpartition
的工作原理吗?
答案 0 :(得分:1)
In [163]: np.argpartition(a, 3)
Out[163]: array([2, 0, 3, 5, 1, 4, 6, 7])
In [164]: a[_]
Out[164]: array([215, 352, 400, 498, 538, 631, 586, 731])
In [165]: np.partition(a,3)
Out[165]: array([215, 352, 400, 498, 538, 631, 586, 731])
在164和165中,400左侧的所有内容都较小,右侧的所有内容都较大。