gpt4 book ai didi

python - 生成总和为 1 的随机变量数组(正负)

转载 作者:行者123 更新时间:2023-11-28 21:39:41 26 4
gpt4 key购买 nike

我正在尝试创建一个带有总和为 1 的随机变量的 numpy 数组,但我也想包含负值。

我正在尝试:

size =(50,1)
w = np.array(np.random.random(size))

创建数组并填充数字(负数和正数),这工作正常。

现在我试图通过以下方式使它们总和为 1:

w /= np.sum(w)

但这会将我的值更改为所有正值(消除负值)。

做这样一个数组的正确方法是什么?

编辑:我已经尝试过 random.int 和 random.uniform,但问题是它们的总和不等于 1。如果我使用 w/= np.sum(w)为了确保它们总和为 1,它只返回正值。

最佳答案

你的问题不是你的规范化,而是你的随机生成器。 np.random.random 始终从 (0,1) 生成正 float 。如果您想要负数,则必须更改它。

w = np.random.random(size)*2-1
w /= w.sum()

w

array([[ 0.05377353],
[ 0.11272973],
[ 0.00789277],
...,
[ 0.06874176],
[-0.12505825],
[-0.15924267]])

w.sum()
1.0

关于python - 生成总和为 1 的随机变量数组(正负),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46424563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com