Python Numpy random 生成随机数

NumPy(Numerical Python 的缩写)是一个开源的 Python 科学计算库。通过 NumPy,可以高效地处理 数组和矩阵数据,并提供大量用于 数值计算、线性代数、傅里叶变换和随机数生成 的函数。NumPy 提供了 random 模块,用于生成各种随机数,是数据分析、模拟和机器学习中的重要工具。

1、什么是随机数(Random Numbers)?

随机数并不意味着“每次都不同”,而是:

👉 无法通过简单规则预测的数值

2、伪随机 vs 真随机

伪随机数(Pseudo Random)

  • 由算法生成

  • 看起来随机,但本质是确定的

  • 可复现(重要)

👉 NumPy 使用的就是 伪随机数

真随机数(True Random)

来自外部不可预测源,例如:

  • 鼠标移动

  • 键盘输入

  • 硬件噪声

👉 一般只用于:

  • 加密

  • 安全场景

📌 结论

在数据分析 / 机器学习中,伪随机数完全够用,且更可控

3、生成随机整数

NumPy 使用 random.randint() 生成随机整数。

示例:生成一个随机整数

from numpy import random

x=random.randint(100)
print(x)

说明:

  • 范围:0 ~ 99

指定范围

x=random.randint(10, 100)

👉 生成 10 ~ 99

4、生成随机浮点数(float)

使用 rand() 生成 0 ~ 1 之间的随机浮点数。

示例

from numpy import random

x=random.rand()
print(x)

输出示例:

0.5488135

5、生成随机数组

NumPy 的随机函数都支持通过参数生成数组。

5.1 随机整数数组

示例:生成一维数组

from numpy import random

x=random.randint(100, size=(5))
print(x)

示例:生成二维数组

x=random.randint(100, size=(3, 5))
print(x)

说明:

  • size=(3,5) → 3 行 5 列

5.2 随机浮点数组

示例:一维数组

x=random.rand(5)
print(x)

示例:二维数组

x=random.rand(3, 5)
print(x)

6、从数组中生成随机值(choice)

choice() 用于从给定数组中随机选择元素。

示例:随机选择一个值

from numpy import random

x=random.choice([3, 5, 7, 9])
print(x)

示例:生成随机数组

x=random.choice([3, 5, 7, 9], size=(3, 5))
print(x)

可选参数(重要补充)

random.choice(a, size, replace=True, p=None)

  • replace=True:允许重复(默认)

  • p:指定概率分布

示例:带权重随机

x=random.choice([3, 5, 7], p=[0.1, 0.3, 0.6], size=5)
print(x)

7、设置随机种子(非常重要)🔥

在实际开发中,经常需要 复现随机结果

示例:设置随机种子

from numpy import random

random.seed(42)

print(random.randint(100))
print(random.randint(100))

👉 每次运行结果相同

📌 为什么重要?

  • 机器学习训练复现

  • 调试代码

  • 实验对比

8、常用随机分布函数(进阶)

除了简单随机数,NumPy 还支持各种概率分布。

正态分布(最常用)

from numpy import random

x=random.normal(loc=0, scale=1, size=5)
print(x)

参数说明:

  • loc:均值

  • scale:标准差

均匀分布

x=random.uniform(0, 10, size=5)

随机排列(洗牌)

arr=np.array([1, 2, 3, 4])

random.shuffle(arr)
print(arr)

9、新版推荐写法

NumPy 新版本推荐使用:

rng=np.random.default_rng()

rng.integers(0, 100)
rng.random()

优点:

  • 更现代

  • 更安全(线程安全)

  • 更可控

✅ 小结

NumPy 常用随机函数:

函数作用
randint()随机整数
rand()0~1 浮点数
choice()从数组中随机选择
normal()正态分布
uniform()均匀分布
seed()固定随机结果

推荐阅读
cjavapy编程之路首页