18 NumPy高级功能之随机数生成
在数据科学和机器学习的领域中,随机数生成是一个重要的工具。随机数不仅可以用于抽样、模拟,还可以用于初始化模型参数。NumPy提供了强大的随机数生成库,可以轻松地生成各种分布的随机数。接下来,我们将通过一些示例来探索NumPy中的随机数生成。
NumPy的随机数生成模块
NumPy的随机数生成功能主要集中在numpy.random
模块中。该模块提供了多种方法来生成随机数和随机样本。
随机数生成基础
我们首先可以使用numpy.random.rand()
生成均匀分布的随机数。它返回在$[0, 1)$区间内均匀分布的随机数。
1 | import numpy as np |
正态分布随机数
除了均匀分布,NumPy还支持其他类型的分布,例如正态分布(高斯分布)。使用函数numpy.random.randn()
可以生成标准正态分布(均值为0,方差为1)的随机数。
1 | # 生成5个标准正态分布的随机数 |
指定均值和标准差的正态分布
如果需要生成具有指定均值$\mu$和标准差$\sigma$的随机数,我们可以使用numpy.random.normal(loc, scale, size)
函数。
1 | # 生成5个均值为10,标准差为2的随机数 |
随机整数生成
如果我们需要生成某个范围内的随机整数,可以使用numpy.random.randint(low, high, size)
函数。
1 | # 生成5个范围在1到10之间的随机整数 |
随机样本抽取
numpy.random.choice(a, size, replace)
函数可以用来从给定的一维数组中随机抽取样本。replace
参数决定是否允许重复抽样。
1 | array = np.array([1, 2, 3, 4, 5]) |
随机种子
NumPy允许设置随机种子,这样可以确保每次运行程序时生成的随机数序列一致。使用numpy.random.seed(seed)
函数可以设置种子。
1 | np.random.seed(42) |
应用案例:生成随机数据并可视化
以下是一个简单的案例,我们将生成一组正态分布的数据,并绘制直方图来可视化这些数据的分布情况。
1 | import matplotlib.pyplot as plt |
总结
在本章中,我们探讨了NumPy中的随机数生成技术,从基本的均匀分布到正态分布以及随机样本抽取,涵盖了多种生成随机数的方法。随机数生成在数据分析、模拟和机器学习中的应用是非常广泛的。掌握这些技能将为后续的学习打下坚实的基础。
下一章我们将讨论NumPy在数据分析中的应用,具体内容包括数据的读取和处理,敬请期待!
18 NumPy高级功能之随机数生成