📅  最后修改于: 2023-12-03 15:42:28.320000             🧑  作者: Mango
频率是统计学中一个关键概念。在 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 库绘制频率直方图,以可视化数据。