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

如何用Numpy按列生成均值0、标准差1的高斯噪声矩阵

生成按列满足均值0、标准差1的高斯噪声矩阵(无循环高性能实现)

原代码用np.random.normal生成的噪声只是整体趋近均值0,但没法保证每一列严格满足均值0、标准差1的要求。下面用numpy的向量化操作实现无循环的高性能方案:

实现代码

import numpy as np

A = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

# 先生成和A同形状的初始随机噪声
noise = np.random.normal(size=A.shape)
# 按列计算均值和总体标准差(ddof=0对应总体标准差,和np.random.normal的std定义匹配)
col_means = noise.mean(axis=0)
col_stds = noise.std(axis=0, ddof=0)
# 按列标准化:减去列均值,再除以列标准差,得到每列均值0、标准差1的噪声
normalized_noise = (noise - col_means) / col_stds

验证效果

可以加一段代码验证每列的均值和标准差:

# 打印每列均值(应接近[0, 0, 0])
print("每列均值:", normalized_noise.mean(axis=0))
# 打印每列标准差(应接近[1, 1, 1])
print("每列标准差:", normalized_noise.std(axis=0, ddof=0))

原理说明

  • 利用numpy的axis=0参数直接按列计算统计量,全程无循环,完全发挥numpy的向量化性能优势
  • 标准化公式(数据 - 列均值)/列标准差是统计学标准操作,能将任意分布的列数据转换为均值0、标准差1的标准正态分布,完美满足需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:58:20