numpy random模块介绍
NumPy 的 random
模块用于生成随机数及执行随机采样。它支持多种概率分布和随机数生成方法,适合用于数值计算和科学研究。
常见的功能
-
生成随机数
numpy.random.rand()
:生成 [0, 1) 之间的均匀分布随机数(浮点数)。numpy.random.randn()
:生成标准正态分布(均值 0,标准差 1)的随机数。numpy.random.randint()
:生成指定范围内的整数。
-
随机选择与打乱
numpy.random.choice()
:从一个数组中随机选择元素。numpy.random.shuffle()
:对数组进行原地打乱。numpy.random.permutation()
:生成一个打乱后的数组,但不修改原数组。
-
基于概率分布的随机数
numpy.random.normal()
:生成正态分布的随机数。numpy.random.uniform()
:生成均匀分布的随机数。numpy.random.binomial()
:生成二项分布的随机数。numpy.random.poisson()
:生成泊松分布的随机数。
示例代码
1. 生成随机数
import numpy as np
# 生成 5 个 [0, 1) 的随机数
rand_numbers = np.random.rand(5)
print("均匀分布的随机数:", rand_numbers)
# 生成 2x3 的标准正态分布随机数数组
randn_matrix = np.random.randn(2, 3)
print("标准正态分布随机数矩阵:\n", randn_matrix)
# 生成 5 个 [0, 10) 的整数
rand_integers = np.random.randint(0, 10, size=5)
print("随机整数:", rand_integers)
2. 随机选择与打乱
# 从列表中随机选择 3 个元素
arr = [1, 2, 3, 4, 5]
choices = np.random.choice(arr, size=3, replace=False)
print("随机选择:", choices)
# 对数组进行原地打乱
np.random.shuffle(arr)
print("打乱后的数组:", arr)
# 生成一个打乱后的数组
perm = np.random.permutation(arr)
print("打乱但不修改原数组:", perm)
print("原数组保持不变:", arr)
3. 生成基于概率分布的随机数
# 生成 10 个均值为 0,标准差为 1 的正态分布随机数
normal_numbers = np.random.normal(loc=0, scale=1, size=10)
print("正态分布随机数:", normal_numbers)
# 生成 5 个 [0, 1) 的均匀分布随机数
uniform_numbers = np.random.uniform(0, 1, size=5)
print("均匀分布随机数:", uniform_numbers)
# 生成二项分布的随机数,参数:n=10, p=0.5
binomial_numbers = np.random.binomial(n=10, p=0.5, size=5)
print("二项分布随机数:", binomial_numbers)
# 生成泊松分布的随机数,参数 lambda=3
poisson_numbers = np.random.poisson(lam=3, size=5)
print("泊松分布随机数:", poisson_numbers)
总结
numpy.random
提供了多种用于生成随机数的工具,包括不同分布的随机数生成、随机选择、打乱数组等。rand()
和randn()
用于生成均匀分布和正态分布的随机数。choice()
、shuffle()
和permutation()
用于随机选择或打乱数组。normal()
、uniform()
等方法可生成基于特定概率分布的随机数。