栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用NumPy从矩阵获取最小/最大n值和索引的有效方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用NumPy从矩阵获取最小/最大n值和索引的有效方法

从另一个答案开始,NumPy添加了

numpy.partition
numpy.argpartition
函数进行部分排序,使您可以及时执行此
O(arr.size)
操作,或者
O(arr.size+n*log(n))
如果您需要按排序顺序排列的元素。

numpy.partition(arr,n)
返回一个数组的大小
arr
,其中
n
第i个元素是这将是什么,如果该阵列被分选。所有较小的元素都在该元素之前,而所有较大的元素都在之后。

numpy.argpartition
numpy.partition
numpy.argsort
numpy.sort

这是使用这些函数查找

n
二维最小元素的索引的方式
arr

flat_indices = numpy.argpartition(arr.ravel(), n-1)[:n]row_indices, col_indices = numpy.unravel_index(flat_indices, arr.shape)

而且,如果您需要按顺序排列索引,那么

row_indices[0]
最小元素的行而不是最小元素之一也将是
n

min_elements = arr[row_indices, col_indices]min_elements_order = numpy.argsort(min_elements)row_indices, col_indices = row_indices[min_elements_order], col_indices[min_elements_order]

一维的情况要简单得多:

# Unordered:indices = numpy.argpartition(arr, n-1)[:n]# Extra pre if you need the indices in order:min_elements = arr[indices]min_elements_order = numpy.argsort(min_elements)ordered_indices = indices[min_elements_order]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号