如何在 Python/NumPy 中高效地对数组项进行排序而无需双重排序?

Susan Sarandon
发布: 2024-10-28 21:29:30
原创
832 人浏览过

How to Rank Array Items in Python/NumPy Efficiently Without Double Sorting?

Python/NumPy 中无需双重排序的更快数组项目排名

在数据分析和机器学习中,通常需要对数组中的项目进行排名基于它们的值的数组。对数组进行双重排序以进行排名可能会非常耗时。

初始方法

常见方法示例如下:

<code class="python">import numpy as np

# Sample array
array = np.array([4, 2, 7, 1])

# Temporary array for sorting
temp = array.argsort()

# Rank computation
ranks = np.arange(len(array))[temp.argsort()]</code>
登录后复制

此方法涉及两次排序操作,增加了其复杂性。

优化解决方案

为了避免双重排序,我们可以利用 NumPy 的 argsort() 函数两次:

<code class="python">array = np.array([4, 2, 7, 1])

# First argsort to obtain element order
order = array.argsort()

# Second argsort to obtain ranking
ranks = order.argsort()</code>
登录后复制

说明

首先,我们使用argsort()来获取数组元素的顺序。然后,我们再次对结果顺序应用 argsort(),从而获得排名。

结论

这种优化技术显着提高了数组项排名的速度避免不必要的排序。对于高维数组,使用argsort中的axis参数来指定排序的轴。

以上是如何在 Python/NumPy 中高效地对数组项进行排序而无需双重排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!