NumPy 计算nums相对于bins的直方图
在Python中,我们可以使用NumPy、Matplotlib和Seaborn库来创建直方图。在NumPy中,我们有一个名为 histogram() 的函数来处理直方图数据。该函数的输入参数是nums和bins。nums用于创建数值数据。
在继续示例之前,首先让我们了解一下什么是直方图。
什么是直方图
直方图是数据集分布的图形表示。它以一系列的条形图的形式表示数据,其中每个条形图代表数据值范围,并且条形图的高度代表定义在该范围内的数据值的频率。
它们主要用于表示数值数据的分布,如班级的成绩分布、人口分布或员工收入分布等。
使用Python中的NumPy计算直方图
在直方图中,x轴表示数据值的范围,被分成间隔,y轴表示每个bin中数据值范围的频率。直方图可以通过将每个bin的频率除以总数据值来进行归一化,从而得到相对频率直方图,其中y轴表示每个bin的数据值。
语法
以下是使用nums创建给定数据范围的直方图的语法。
numpy.histogram(nums, bins, range, normed, weights, density)
其中,
- nums 是输入的数字数据。
-
bins 是用于表示数据的直方图中的柱的数量。
-
range 定义了直方图中的值的范围。
-
normed 是对密度参数的偏好。
-
weights 是可选参数,用于给每个数据值加权。
-
Density 是将直方图数据归一化形成概率密度的参数。
示例
在下面的示例中,我们通过定义nums和需要在直方图中有多少个bins来创建学生的分数。使用 histogram() 函数通过传递nums和bins作为输入参数来生成直方图。
import numpy as np
import matplotlib.pyplot as plt
nums = np.random.normal(50,20,size = 50)
hist = np.histogram(nums)
print("The histogram of the given data:",hist)
plt.hist(hist)
plt.show()
输出
以下是使用nums对bins执行histogram()函数的输出结果。
The histogram of the given data: (array([ 1, 0, 0, 6, 7, 9, 8, 12, 4, 3]), array([-11.52097959, -1.64606252, 8.22885455, 18.10377162,
27.97868869, 37.85360576, 47.72852282, 57.60343989,
67.47835696, 77.35327403, 87.2281911 ]))
示例
让我们看一个示例,以了解直方图()对nums与bins的工作方式。
import numpy as np
import matplotlib.pyplot as plt
nums = np.random.normal(200,20,size = 100)
hist = np.histogram(nums)
print("The histogram of the given data:",hist)
plt.hist(hist)
plt.show()
输出
下面是使用nums和bins调用histogram()函数的输出结果。
The histogram of the given data: (array([ 2, 1, 8, 17, 18, 24, 13, 11, 3, 3]), array([146.40363927, 156.62124167, 166.83884407, 177.05644647,
187.27404887, 197.49165127, 207.70925367, 217.92685607,
228.14445847, 238.36206086, 248.57966326]))
示例
让我们看另一个例子,使用numpy库的histogram()函数以nums对抗bins。
import numpy as np
import matplotlib.pyplot as plt
nums = np.random.normal(400,30,size = 30)
hist = np.histogram(nums)
print("The histogram of the given data:",hist)
plt.hist(hist)
plt.show()
输出
以下是使用nums和bins参数调用histogram()函数的输出。
The histogram of the given data: (array([2, 1, 3, 5, 5, 4, 6, 0, 2, 2]), array([340.28832063, 352.48676341, 364.68520618, 376.88364896,
389.08209174, 401.28053451, 413.47897729, 425.67742007,
437.87586284, 450.07430562, 462.2727484 ]))