如何创建指定均值和标准差的二维高斯分布Numpy数组
创建指定高斯分布的NumPy数组
你可以通过NumPy的random.normal()函数实现需求,以下是两种简洁可行的方法:
方法一:一次性生成目标数组
直接通过参数指定每列的均值和标准差,一步生成符合形状的数组:
import numpy as np # 定义各列的均值与标准差 col_means = [1, -1] col_stds = [2, 0.5] # 生成1000行2列的数组 target_array = np.random.normal(loc=col_means, scale=col_stds, size=(1000, 2))
loc:传入包含两列均值的列表,对应第一列均值1、第二列均值-1scale:传入包含两列标准差的列表,对应第一列标准差2、第二列标准差0.5size=(1000, 2):指定数组的最终形状
方法二:分列生成后拼接
如果需要更直观的分步操作,可以单独生成每一列,再组合为二维数组:
import numpy as np # 生成第一列数据:均值1、标准差2,共1000个样本 col1 = np.random.normal(loc=1, scale=2, size=1000) # 生成第二列数据:均值-1、标准差0.5,共1000个样本 col2 = np.random.normal(loc=-1, scale=0.5, size=1000) # 将两列拼接为1000行2列的数组 target_array = np.column_stack((col1, col2))
两种方法最终生成的数组均满足需求,元素分别服从对应参数的高斯分布。
内容的提问来源于stack exchange,提问作者Padox
相关产品推荐
相关产品推荐

