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() | 固定随机结果 |