用途
生成一个数组的直方图
可以快速了解数据的集中程度,分布情况等
原理
将输入的数组分割成若干个区间,然后统计每个区间中数据点的数量。
“区间”也被称为“箱子”,即“bin”
函数结构
counts, bins = np.histogram(data, bins=bin_count, range=(start, end), density=False)
输入参数:
data : 数据集,要计算直方图的数据集
bins : 箱子数量,也即横坐标上的区间数
range(可选参数) : 数字范围,默认情况下,范围是整个数据集的最小值到最大值。
density(可选参数): 为True时,返回每个区间的概率密度,得到的是归一化的直方图;为False,返回每个区间中元素的个数
返回值:
counts :每个“bin”(箱子)中的数据点数量
bins : 包含了箱子的边界
例子
import numpy as np
data = np.array([1, 2, 1, 3, 4, 5, 6, 7, 8, 9])
counts, bins = np.histogram(data, bins=5)
print("Counts:", counts)
print("Bins:", bins)
输出如下:
Counts: [2 2 2 2 2]
Bins: [1. 2.6 4.2 5.8 7.4 9.]
PS:解释一下结果中,bins的计算过程:
由于把整个数据集分成5个“箱子”,这里面最大值是9,最小值是1,
(9-1)/5 = 1.6
因此,箱子的边界是 1. (1 + 1*1.6) (1 + 2*1.6) ......以此类推,直到9.0