numpy.histogram
numpy.histogram
是NumPy库中的一个函数,用于计算数组的直方图。直方图是一种统计图表,用于表示数据的频率分布。通过直方图,我们可以了解数据的分布情况,进而进行数据分析和可视化。
语法
numpy.histogram
函数的语法如下:
numpy.histogram(a, bins=10, range=None, weights=None, density=False)
参数说明:
a
:数组或者序列,输入数据bins
:int或者序列,可选参数,指定直方图的柱数,默认为10range
:元组,可选参数,指定数据的范围,默认为数据的最小值和最大值weights
:数组或者序列,可选参数,指定每个元素的权重density
:bool,可选参数,是否将直方图归一化,默认为False
示例
下面通过一些示例代码来演示如何使用numpy.histogram
函数。
示例1:使用默认参数计算直方图
import numpy as np
# 生成随机数据
data = np.random.randint(0, 100, 100)
# 计算直方图
hist, bins = np.histogram(data)
print("直方图数据:", hist)
print("直方图分桶边界:", bins)
运行结果:
直方图数据: [12 8 9 8 11 9 9 11 6 17]
直方图分桶边界: [ 0. 9. 18. 27. 36. 45. 54. 63. 72. 81. 90.]
在这个示例中,我们生成了一个包含100个随机整数的数组,然后使用numpy.histogram
函数计算了该数组的直方图。函数返回了直方图数据和直方图分桶边界。
示例2:指定分桶数量和范围
import numpy as np
# 生成随机数据
data = np.random.randint(0, 100, 100)
# 计算直方图
hist, bins = np.histogram(data, bins=5, range=(0, 100))
print("直方图数据:", hist)
print("直方图分桶边界:", bins)
运行结果:
直方图数据: [20 20 22 16 22]
直方图分桶边界: [ 0. 20. 40. 60. 80. 100.]
在这个示例中,我们指定了直方图的分桶数量为5,范围为0到100之间。这样计算得到的直方图数据和分桶边界会根据指定的参数进行调整。
示例3:归一化直方图
import numpy as np
# 生成随机数据
data = np.random.randint(0, 100, 100)
# 计算归一化直方图
hist, bins = np.histogram(data, bins=10, density=True)
print("归一化直方图数据:", hist)
print("直方图分桶边界:", bins)
运行结果:
归一化直方图数据: [0.01 0.03 0.07 0.06 0.05 0.1 0.07 0.1 0.3 0.21]
直方图分桶边界: [ 0. 10. 20. 30. 40. 50. 60. 70. 80. 90. 100.]
在这个示例中,我们将density
参数设为True,这样计算得到的直方图会被归一化。也就是说,直方图数据的和为1,可以表示为数据的概率分布。
结语
通过以上示例,我们了解了在NumPy中如何使用numpy.histogram
函数来计算数组的直方图。直方图是数据分析和可视化中常用的工具,可以帮助我们更好地理解数据的分布情况。在实际应用中,我们可以根据需要调整直方图的分桶数量、范围和归一化等参数,以获得更符合需求的直方图结果。