当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NumPy histogram方法用法及代码示例


NumPy 的 histogram(~) 方法计算直方图(frequency-count 图)。

参数

1. a | array-like

输入数组。

2. bins | array-like | optional

所需的箱子数量。如果提供了数组,则它必须包含边。默认情况下,我们得到 10 个equal-width bin。

3. range | floattuple | optional

默认情况下,范围设置为(a.min()a.max())。

4. weights | array-like | optional

包含每个输入值的权重的数组。如果某个值落在特定的 bin 中,我们不会将计数增加 1,而是增加相应的权重。形状必须与 a 相同。默认情况下,权重均为一。

5. density | boolean | optional

是否归一化为概率密度函数(即总面积等于 1)。默认情况下,density=False

返回值

两个 NumPy 数组的元组:

  1. 直方图的值(即频率计数)

  2. 箱子边

例子

基本用法

my_hist, bin_edges = np.histogram([1,3,6,6,10])
print("hist:", my_hist)
print("bin_edges:", bin_edges)



hist: [1 0 1 0 0 2 0 0 0 1]
bin_edges: [ 1.   1.9  2.8  3.7  4.6  5.5  6.4  7.3  8.2  9.1 10. ]

这里,bin_edges表示bin的间隔,hist表示落在该间隔之间的值的数量。例如,总共有一项位于 11.9 之间,因此我们得到直方图中该点的值 1

指定 bin 的数量

my_hist, bin_edges = np.histogram([1,3,6,6,10], bins=5)
print("hist:", my_hist)
print("bin_edges:", bin_edges)



hist: [1 1 2 0 1]
bin_edges: [ 1.   2.8  4.6  6.4  8.2 10. ]

指定 bin 边

my_hist, bin_edges = np.histogram([1,3,6,6,10], bins=[1,5,10])
print("hist:", my_hist)
print("bin_edges:", bin_edges)



hist: [2 3]
bin_edges: [ 1  5 10]

指定范围

my_hist, bin_edges = np.histogram([1,3,6,6,10], range=(0,20))
print("hist:", my_hist)
print("bin_edges:", bin_edges)



hist: [1 1 0 2 0 1 0 0 0 0]
bin_edges: [ 0.  2.  4.  6.  8. 10. 12. 14. 16. 18. 20.]

指定权重

my_hist, bin_edges = np.histogram([1,3,6,6,10], weights=[1,5,1,1,1])
print("hist:", my_hist)
print("bin_edges:", bin_edges)



hist: [1 0 5 0 0 2 0 0 0 1]
bin_edges: [ 1.   1.9  2.8  3.7  4.6  5.5  6.4  7.3  8.2  9.1 10. ]

我们得到 5 的原因是输入数组中的两个 6 显然属于同一个 bin,并且由于它们各自的权重是 4 和 5,所以我们最终得到的总 bin 计数为 4+5=9

标准化

my_hist, bin_edges = np.histogram([1,3,6,6,10], density=True)
print("hist:", my_hist)
print("bin_edges:", bin_edges)



hist: [0.22222222 0.         0.22222222 0.         0.         0.44444444 0.         0.         0.         0.22222222]
bin_edges: [ 1.   1.9  2.8  3.7  4.6  5.5  6.4  7.3  8.2  9.1 10. ]

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | histogram method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。