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

如何创建元素为0到1间正态分布随机值的2x2 Python数组?

创建2x2的0-1区间正态分布随机数组

要生成符合要求的数组,最直接高效的方式是使用numpy的截断正态分布工具——因为标准正态分布的取值范围是无限的,我们需要把它限制在0到1之间。

方法一:使用截断正态分布(推荐)

numpy.random.truncnorm可以直接生成指定区间内的正态分布随机数,步骤如下:

import numpy as np

# 定义正态分布的均值和标准差(可按需调整)
mu = 0.5
sigma = 0.2

# 计算截断正态分布的标准化边界参数
a = (0 - mu) / sigma
b = (1 - mu) / sigma

# 生成2x2的目标数组
random_array = np.random.truncnorm(a, b, size=(2, 2))

# 输出结果
print(random_array)

代码说明:

  • a和b是截断正态分布的标准化边界,计算公式为(区间边界 - 均值)/标准差
  • size=(2,2)直接指定生成2行2列的数组结构
  • 你可以根据需求调整mu(均值)和sigma(标准差),只要保证大部分数值落在0-1区间内即可(比如均值设为0.5、标准差0.2时,几乎所有生成值都会在0-1范围内)

方法二:生成普通正态分布后筛选(适合小数组)

如果不想用截断函数,也可以先生成普通正态分布的随机数,再筛选出0-1之间的数值,凑够数量后重塑为2x2数组:

import numpy as np

mu = 0.5
sigma = 0.2
values = []

# 筛选0-1之间的随机数,直到凑够4个
while len(values) < 4:
    num = np.random.normal(mu, sigma)
    if 0 <= num <= 1:
        values.append(num)

# 转换为2x2数组
random_array = np.array(values).reshape(2, 2)
print(random_array)

这种方法仅适合像2x2这样的小数组,若数组规模较大,筛选过程会明显降低效率,因此更推荐第一种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:54:18