random.rand函数
numpy.random.rand
是 NumPy 库中的一个函数,用于从均匀分布中生成随机浮点数。这些浮点数位于半开区间 [0.0, 1.0)
,也就是说它们包括 0.0 但不包括 1.0。
1函数示例
numpy.random.rand(d0, d1, ..., dn)
参数
d0, d1, ..., dn
:整数,表示输出的随机数组的维度。如果没有提供任何参数,则返回一个标量(单个随机浮点数)。
返回值
- 返回一个形状为
(d0, d1, ..., dn)
的数组,其中包含了从均匀分布[0.0, 1.0)
中随机抽取的浮点数。
2示例
示例 1:生成单个随机浮点数
import numpy as np # 生成一个位于 [0.0, 1.0) 之间的随机浮点数
random_float = np.random.rand()
print(random_float)
输出结果: 生成一个位于 [0.0, 1.0) 之间的随机浮点数
0.7292651888729444
示例 2:生成一个随机浮点数数组
import numpy as np # 生成一个形状为 (3,) 的数组,包含随机浮点数
random_floats = np.random.rand(3)
print(random_floats)
输出结果类似于:
[0.22655261 0.14549794 0.81959531]
示例 3:生成一个二维随机浮点数数组
import numpy as np # 生成一个形状为 (2, 3) 的二维数组,包含随机浮点数
random_matrix = np.random.rand(2, 3)
print(random_matrix)
输出结果类似于:
[[0.69793487 0.92080438 0.79024895]
[0.21149495 0.55471829 0.96925194]]
示例 4:生成一个多维随机浮点数数组
import numpy as np # 生成一个形状为 (2, 2, 2) 的三维数组,包含随机浮点数
random_tensor = np.random.rand(2, 2, 2)
print(random_tensor)
输出结果为:
[[[0.1002439 0.65823964]
[0.83135404 0.64682726]]
[[0.23616227 0.45717437]
[0.23748224 0.80672744]]]
3注意事项
numpy.random.rand
函数生成的随机数是从均匀分布中抽取的,也就是说,每个数在[0.0, 1.0)
区间内被抽取的概率是相同的。- 生成的随机数实际上是伪随机数,这意味着它们是通过一个确定的算法生成的,并且在每次运行程序时,如果随机数生成器的种子(seed)相同,则生成的随机数序列也会相同。如果需要每次运行程序时都生成不同的随机数序列,可以在程序开始时设置随机数生成器的种子,如
np.random.seed(some_integer)
。
通过 numpy.random.rand
函数,你可以方便地生成任意形状的随机浮点数数组,这在需要进行模拟、测试算法或创建随机数据集时非常有用。
random.standard_normal函数
numpy.random.standard_normal
是 NumPy 库中的一个函数,用于从标准正态分布(也称为单位正态分布)中生成随机浮点数。标准正态分布是一种概率分布,其均值为 0,标准差为 1。
1函数示例
numpy.random.standard_normal(size=None)
参数
size
:整数或整数元组,可选参数。输出数组的形状。如果未提供,则返回一个标量(单个随机浮点数)。
返回值
- 返回一个形状为
size
的数组,数组中的元素是从标准正态分布中随机抽取的浮点数。
2示例
示例 1:生成单个标准正态分布的随机数
import numpy as np # 生成一个标准正态分布的随机数
random_normal = np.random.standard_normal()
print(random_normal)
结果输出:
-0.45627660030943773
示例 2:生成一个标准正态分布的随机数组
import numpy as np # 生成一个形状为 (3,) 的数组,包含标准正态分布的随机数
random_normals = np.random.standard_normal(3)
print(random_normals)
结果输出:
[-1.33435244 -0.1071087 -1.13890303]
示例 3:生成一个二维标准正态分布的随机数组
import numpy as np # 生成一个形状为 (2, 3) 的二维数组,包含标准正态分布的随机数
random_normal_matrix = np.random.standard_normal((2, 3))
print(random_normal_matrix)
结果输出:
[[-0.27204649 0.89816457 0.61386239][-0.39830262 -0.44730264 0.89667475]]
示例 4:设置随机数生成器的种子以获得可重复的结果
import numpy as np # 设置随机数生成器的种子
np.random.seed(0) # 生成一个形状为 (3,) 的数组,包含标准正态分布的随机数
# 由于设置了种子,每次运行这段代码时都会得到相同的随机数序列
reproducible_normals = np.random.standard_normal(3)
print(reproducible_normals)
结果输出: [1.76405235 0.40015721 0.97873798]
3注意事项
numpy.random.standard_normal
生成的是标准正态分布的随机数,其均值(mean)为 0,标准差(standard deviation)为 1。- 和
numpy.random.rand
一样,numpy.random.standard_normal
生成的随机数也是伪随机数。如果需要可重复的随机数序列,可以通过设置随机数生成器的种子来实现。 - 标准正态分布在实际应用中非常广泛,例如在统计学、机器学习、信号处理等领域中经常需要用到。通过
numpy.random.standard_normal
函数,你可以方便地生成符合标准正态分布的随机数据。
random.normal 函数
numpy.random.normal
是 NumPy 库中的一个函数,用于从正态分布(也称为高斯分布)中抽取随机样本。正态分布是一个连续概率分布,其中大多数值聚集在均值附近,远离均值的值越来越少。
1函数示例
numpy.random.normal(loc=0.0, scale=1.0, size=None)
参数
loc
:分布的均值(或“中心”)的浮点值。默认值为 0.0。scale
:分布的标准差(或“宽度”或“分散度”)的浮点值。默认值为 1.0。size
:输出的形状。如果为 None(默认),则返回一个值。如果为整数,则返回一个形状为(size,)
的一维数组。如果为形状元组,则返回一个形状为size
的数组。
返回值
返回一个或多个从正态分布中抽取的随机样本。
2举例说明
1.抽取一个随机样本
import numpy as np # 从均值为0,标准差为1的正态分布中抽取一个随机样本
sample = np.random.normal()
print(sample)
输出结果:
2.240893199201458
2.抽取多个随机样本
import numpy as np # 从均值为0,标准差为1的正态分布中抽取5个随机样本
samples = np.random.normal(size=5)
print(samples)
输出结果:
[ 1.86755799 -0.97727788 0.95008842 -0.15135721 -0.10321885]
3.抽取具有指定均值和标准差的随机样本
import numpy as np # 从均值为3,标准差为2的正态分布中抽取3个随机样本
samples = np.random.normal(loc=3, scale=2, size=3)
print(samples)
输出结果:
[3.821197 3.28808714 5.90854701]
4.抽取二维数组的随机样本
import numpy as np # 从均值为0,标准差为1的正态分布中抽取一个2x3的随机样本数组
samples = np.random.normal(size=(2, 3))
print(samples)
输出结果:
[[ 0.76103773 0.12167502 0.44386323][ 0.33367433 1.49407907 -0.20515826]]
这些例子展示了如何使用 numpy.random.normal
函数来从正态分布中抽取随机样本,并可以通过调整 loc
和 scale
参数来改变分布的均值和标准差。size
参数用于指定输出的形状。
random.uniform函数
numpy.random.uniform
是 NumPy 库中的一个函数,用于从均匀分布中抽取随机样本。均匀分布是一个概率分布,其中所有可能的结果都有相同的概率被选中。
1函数示例
numpy.random.uniform(low=0.0, high=1.0, size=None)
参数
low
:分布的下界。所有生成的随机数都将大于或等于这个值。默认值为 0.0。high
:分布的上界(不包含)。所有生成的随机数都将小于这个值。默认值为 1.0。size
:输出的形状。如果为 None(默认),则返回一个值。如果为整数,则返回一个形状为(size,)
的一维数组。如果为形状元组,则返回一个形状为size
的数组。
返回值
返回一个或多个从均匀分布中抽取的随机样本。
2举例说明
1.抽取一个随机样本
import numpy as np # 从0到1之间的均匀分布中抽取一个随机样本
sample = np.random.uniform()
print(sample)
结果输出:
0.11827442586893322
2.抽取多个随机样本
import numpy as np # 从0到1之间的均匀分布中抽取5个随机样本
samples = np.random.uniform(size=5)
print(samples)
输出结果:
[0.63992102 0.14335329 0.94466892 0.52184832 0.41466194]
3.指定分布的范围
import numpy as np # 从2到8之间的均匀分布中抽取3个随机样本
samples = np.random.uniform(low=2, high=8, size=3)
print(samples)
输出结果:
[3.58733367 6.64540214 4.73690199]
4.抽取二维数组的随机样本
import numpy as np # 从0到1之间的均匀分布中抽取一个2x3的随机样本数组
samples = np.random.uniform(size=(2, 3))
print(samples)
输出结果:
[[0.56843395 0.0187898 0.6176355 ][0.61209572 0.616934 0.94374808]]
这些例子展示了如何使用 numpy.random.uniform
函数来从均匀分布中抽取随机样本。你可以通过调整 low
和 high
参数来改变分布的范围,并使用 size
参数来指定输出的形状。这个函数在需要生成一定范围内随机数的场合非常有用,例如模拟、统计测试等。