numpy.argpartition文档不够清晰

时间:2019-08-26 16:02:29

标签: python numpy

我已经尝试通过阅读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的工作原理吗?

1 个答案:

答案 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左侧的所有内容都较小,右侧的所有内容都较大。