You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Numpy创建指定形式的离散正态分布数组?

生成离散正态分布数组的方法

你要生成的是对称且总和趋近于1的离散正态概率分布数组,NumPy里没有直接对应np.f(deviation, mean, n_elements)格式的现成函数,但可以通过几个基础函数组合快速实现:

  • 第一步:生成等间距采样点,对应你需要的n_elements个元素,围绕指定均值展开:

    import numpy as np
    
    mean = 0
    deviation = 1
    n_elements = 5
    # 生成覆盖±2倍标准差范围的等间距点(可按需调整范围)
    x = np.linspace(mean - 2*deviation, mean + 2*deviation, n_elements)
    
  • 第二步:计算每个点的正态分布概率密度值,再归一化让总和接近1:

    # 计算未归一化的正态密度
    norm_unscaled = np.exp(-(x - mean)**2 / (2 * deviation**2))
    # 归一化到总和为1
    norm = norm_unscaled / norm_unscaled.sum()
    
    print(norm)
    # 输出近似值:[0.06136 0.24477 0.38774 0.24477 0.06136]
    print(np.sum(norm))
    # 输出:1.0(或极接近1的浮点数)
    

如果配合SciPy(与NumPy配套的科学计算库)使用,可以用scipy.stats.norm.pdf简化密度计算:

from scipy.stats import norm

norm_unscaled = norm.pdf(x, loc=mean, scale=deviation)
norm = norm_unscaled / norm_unscaled.sum()

注意:采样点的范围(比如示例中的±2σ)会影响最终数组的分布形态,你可以调整linspace的起止值,让分布更集中或更分散。

内容的提问来源于stack exchange,提问作者Lex Podgorny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:42:09