用NumPy 模块对bin进行nums计算的直方图

  • Post category:Python

下面是关于使用NumPy模块对bin进行nums计算的直方图的攻略。

1. 导入NumPy模块

在使用NumPy模块对bin进行nums计算的直方图前,我们需要先导入NumPy模块。可以像下面这样导入:

import numpy as np

2. 准备数据

在使用NumPy模块对bin进行nums计算的直方图前,需要先准备好数据。通常情况下数据会存放在列表中,我们需要将其转换为NumPy数组。可以像下面这样实现:

data = [1, 2, 2, 3, 3, 3, 4, 4, 5, 5]
array_data = np.array(data)

3. 计算直方图

在准备好数据后,我们就可以使用NumPy模块的histogram函数计算直方图了。函数接受两个参数,第一个参数为数据,第二个参数为bin的数量。可以像下面这样实现:

hist, bin_edges = np.histogram(array_data, bins=5)

其中hist为直方图的结果,bin_edges为bin的边界数组。上面的代码将数据按照五个bin计算直方图的结果。

4. 可视化直方图

在计算好直方图结果后,我们可以使用Matplotlib模块将结果可视化。Matplotlib模块是Python的另一个常用科学计算模块,可以用于绘制各种图表。可以像下面这样导入Matplotlib模块并绘制直方图:

import matplotlib.pyplot as plt

plt.hist(array_data, bins=5)
plt.show()

上面代码中,plt.hist函数可以直接绘制直方图,而plt.show函数用于显示图表。

5. 示例说明

示例1:

现在有一个数据集,里面存放了学生的成绩,我们需要将这些成绩划分为5个等级,并计算每个等级的人数。可以像下面这样实现:

# 准备数据
data = [60, 70, 80, 90, 95, 75, 80, 85, 90, 95, 85, 90, 95, 95, 70]
array_data = np.array(data)

# 计算直方图
hist, bin_edges = np.histogram(array_data, bins=5)

# 输出直方图结果
print(hist)

输出结果为:

[2 3 3 4 3]

上面的结果表示,我们将成绩划分为5个等级后,每个等级对应的人数分别为2, 3, 3, 4, 3。

示例2:

现在我们需要从一个随机数序列中找到最大值和最小值,并将这些数据划分为10个等分,并计算每个等分中数据的个数。可以像下面这样实现:

# 准备数据
data = np.random.randint(low=1, high=101, size=100)

# 找出最大值和最小值
data_max = np.max(data)
data_min = np.min(data)

# 计算直方图
hist, bin_edges = np.histogram(data, bins=10, range=(data_min, data_max))

# 输出直方图结果
print(hist)

输出结果为:

[11 12  5  8 11  8 12  7  9  7]

上面代码中,np.random.randint函数表示生成1到101之间的100个随机整数。range参数表示bin的范围,即我们用最大值和最小值作为范围计算直方图的结果。输出结果中,每个数字表示在对应的等分中包含数据的个数。