首页  >  文章  >  后端开发  >  ## 如何有效计算 NumPy 数组中不同值的频率计数?

## 如何有效计算 NumPy 数组中不同值的频率计数?

Susan Sarandon
Susan Sarandon原创
2024-10-27 10:55:30314浏览

## How to Efficiently Calculate Frequency Counts for Distinct Values in NumPy Arrays?

计算 NumPy 数组中不同值的频率计数

查找 NumPy 数组中各个值的出现频率是数据分析中的一项常见任务。本文概述了获取这些频率计数的有效方法。

方法:

NumPy 中获取频率计数的主要方法是通过 np.unique 函数,具体来说通过设置 return_counts=True 。例如,考虑以下数组:

<code class="python">x = np.array([1,1,1,2,2,2,5,25,1,1])</code>

要计算这些元素的频率计数:

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

unique, counts = np.unique(x, return_counts=True)

print(np.asarray((unique, counts)).T)</code>

这将输出:

[[ 1  5]
 [ 2  3]
 [ 5  1]
 [25  1]]

如您所愿可以看到,结果数组包含唯一值(在第一列中)及其各自的频率(在第二列中)。

比较和性能:

与其他方法(例如 scipy.stats.itemfreq)相比,带有 return_counts=True 的 np.unique 方法提供了更高的性能。对于大型数组,np.unique 所花费的时间显着减少,如以下基准比较所示:

<code class="python">x = np.random.random_integers(0,100,1e6)

%timeit unique, counts = np.unique(x, return_counts=True) # 31.5 ms per loop

%timeit scipy.stats.itemfreq(x) # 170 ms per loop</code>

结论:

np.unique NumPy 中的函数提供了一种获取数组中唯一值的频率计数的有效解决方案。与其他方法相比,它的性能优势使其成为大型数据集的首选。

以上是## 如何有效计算 NumPy 数组中不同值的频率计数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn