📜  Python中的 NumPy.histogram() 方法

📅  最后修改于: 2022-05-13 01:55:02.245000             🧑  作者: Mango

Python中的 NumPy.histogram() 方法

直方图是可视化数据集频率分布的最佳方式,方法是将其拆分为称为 bin 的大小相等的小区间。 Numpy 直方图函数类似于 matplotlib 库的 hist()函数,唯一的区别是 Numpy 直方图给出数据集的数值表示,而 hist() 给出数据集的图形表示。

创建 Numpy 直方图

Numpy 有一个内置的 numpy.histogram()函数,它以图形形式表示数据分布的频率。具有相同水平大小的矩形对应于称为 bin 的类间隔和对应于频率的可变高度。
句法:

上述函数的属性如下:

AttributeParameter
dataarray or sequence of array to be plotted
binsint or sequence of str defines number of equal width bins in a range, default is 10
rangeoptional parameter sets lower and upper range of bins
normedoptional parameter same as density attribute, gives incorrect result for unequal bin width
weightsoptional parameter defines array of weights having same dimensions as data
densityoptional parameter if False result contain number of sample in each bin, if True result contain probability density function at bin

该函数有两个返回值hist ,它给出了直方图的值数组,以及edge_bin ,它是一个浮点数据类型的数组,包含长度比 hist 大一的 bin 边。
例子:

Python3
# Import libraries
import numpy as np
 
 
# Creating dataset
a = np.random.randint(100, size =(50))
 
# Creating histogram
np.histogram(a, bins = [0, 10, 20, 30, 40,
                        50, 60, 70, 80, 90,
                        100])
 
hist, bins = np.histogram(a, bins = [0, 10,
                                     20, 30,
                                     40, 50,
                                     60, 70,
                                     80, 90,
                                     100])
 
# printing histogram
print()
print (hist)
print (bins)
print()


Python3
# import libraries
from matplotlib import pyplot as plt
import numpy as np 
 
 
# Creating dataset
a = np.random.randint(100, size =(50))
 
# Creating plot
fig = plt.figure(figsize =(10, 7))
 
plt.hist(a, bins = [0, 10, 20, 30,
                    40, 50, 60, 70,
                    80, 90, 100])
 
plt.title("Numpy Histogram")
 
# show plot
plt.show()


输出:

图示

上述直方图的数值表示可以转换为图形形式。 Matplotlib 的 pyplot 子模块中的 plt()函数将数据集数组和 bin 数组作为参数,并创建相应数据值的直方图。
例子:

Python3

# import libraries
from matplotlib import pyplot as plt
import numpy as np 
 
 
# Creating dataset
a = np.random.randint(100, size =(50))
 
# Creating plot
fig = plt.figure(figsize =(10, 7))
 
plt.hist(a, bins = [0, 10, 20, 30,
                    40, 50, 60, 70,
                    80, 90, 100])
 
plt.title("Numpy Histogram")
 
# show plot
plt.show()

输出: