📜  频率 - Python (1)

📅  最后修改于: 2023-12-03 15:42:28.320000             🧑  作者: Mango

频率 - Python

频率是统计学中一个关键概念。在 Python 中通过统计数据出现的次数,我们可以以各种形式计算频率。

频率计算

我们可以使用 NumPy 中的 np.unique() 函数来计算每个唯一值的出现次数,也可以使用 collections.Counter 类来计算出现次数。

import numpy as np
from collections import Counter

# 使用 np.unique() 函数计算频率
arr = np.array([1, 2, 3, 1, 1, 2, 4])
unique, counts = np.unique(arr, return_counts=True)
frequencies = np.asarray((unique, counts)).T
print(frequencies)

# 使用 collections.Counter 类计算频率
arr = [1, 2, 3, 1, 1, 2, 4]
freq = Counter(arr)
print(freq.most_common())

以上代码将打印每个唯一值的出现次数和频率。

| 数字 | 频率 |
|:----:|:----:|
|   1  |   3  |
|   2  |   2  |
|   3  |   1  |
|   4  |   1  |

[('1', 3), ('2', 2), ('3', 1), ('4', 1)]
相对频率

相对频率是指每个值出现的频率除以总次数。在 Python 中,我们可以通过 NumPy 实现相对频率。只需将数字出现的次数除以数组大小即可。

arr = np.array([1, 2, 3, 1, 1, 2, 4])
unique, counts = np.unique(arr, return_counts=True)
frequencies = counts / len(arr)
print(frequencies)

以上代码将打印每个值的相对频率。

array([0.42857143, 0.28571429, 0.14285714, 0.14285714])
绘制频率直方图

我们可以使用 Matplotlib 库的 plt.hist() 函数来绘制频率直方图。该函数具有多种选项,例如用于设置直方图的样式和边界。

import matplotlib.pyplot as plt

arr = np.array([1, 2, 3, 1, 1, 2, 4])
plt.hist(arr, bins=4, color='blue', edgecolor='black')

plt.title('频率直方图')
plt.xlabel('数字')
plt.ylabel('频率')
plt.show()

以上代码将绘制频率直方图。

频率直方图

总结

频率是统计学中一个重要的概念。在 Python 中,我们可以使用 NumPy 和 collections 库计算数字的出现次数和相对频率。我们还可以使用 Matplotlib 库绘制频率直方图,以可视化数据。