np.random.randn 是 NumPy 中生成标准正态分布()随机数的核心函数,其底层实现依赖于数学转换算法和高效的伪随机数生成器。以下从算法原理、分布保证、效率分析和替代方案四方面详细解析:
一、np.random.randn 的算法核心:从均匀分布到正态分布
np.random.randn 生成标准正态分布的过程分为两步,核心是利用数学变换将均匀分布转化为正态分布:
1. 第一步:生成均匀分布的伪随机数
计算机无法生成真正的随机数,只能通过伪随机数生成器(PRNG) 生成具有统计随机性的序列。NumPy 中默认的 PRNG 是 Mersenne Twister(MT19937),它的工作原理是:
- 基于一个大周期(
)的线性递归关系;
- 从一个初始 “种子(seed)” 出发,生成
区间内均匀分布的伪随机数;
- 周期足够长,在实际应用中可视为 “近似真随机”。
这一步生成的是均匀分布的随机数,而非正态分布。
2. 第二步:通过 Box-Muller 变换转为正态分布
由于 PRNG 直接生成的

最低0.47元/天 解锁文章

1688

被折叠的 条评论
为什么被折叠?



