python partition函数_Python numpy.argpartition函数方法的使用

numpy.argpartition

numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None) [source]

使用kind关键字指定的算法,沿给定轴执行间接分区。 它沿着给定的轴按分区顺序返回与该索引数据具有相同形状的索引数组。

1.8.0版中的新功能。参数 :a :array_like

数组进行排序。

kth :int 或 int类型的sequence

分区依据的元素索引。 第k个元素将处于其最终排序位置,

所有较小的元素将在其之前移动,而所有较大的元素将在其后面移动。

分区中所有元素的顺序是不确定的。

如果提供第k个序列,它将立即将它们全部划分到其排序位置。

axis :int 或 None, 可选

要排序的轴。 默认值为-1(最后一个轴)。

如果为None,则使用展平的数组。

kind :{‘introselect’}, 可选

选择算法。 默认值为“introselect”

或der :str 或 str的类型list, 可选

当a是定义了字段的数组时,此参数指定要比较的字段的第一个,

第二个等。单个字段可以指定为字符串,并且不需要指定所有字段,

但是仍将使用未指定的字段。 他们以dtype出现的顺序来打破关系。

返回值 :index_array :ndarray, int

沿指定轴划分a的索引数组。 如果a是一维的,

则a [index_array]会生成分区的a。 更一般而言,

np.take_along_axis(a,index_array,axis = a)

总是产生分区a,而与维数无关。

Notes

有关不同选择算法的说明,请参见分区。

例子

一维数组:>>> x = np.array([3, 4, 2, 1])

>>> x[np.argpartition(x, 3)]

array([2, 1, 3, 4])

>>> x[np.argpartition(x, (1, 3))]

array([1, 2, 3, 4])>>> x = [3, 4, 2, 1]

>>> np.array(x)[np.argpartition(x, 3)]

array([2, 1, 3, 4])

多维数组:>>> x = np.array([[3, 4, 2], [1, 3, 1]])

>>> index_array = np.argpartition(x, kth=1, axis=-1)

>>> np.take_along_axis(x, index_array, axis=-1) # same as np.partition(x, kth=1)

array([[2, 3, 4],

[1, 1, 3]])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值