【发布时间】:2020-09-15 22:32:20
【问题描述】:
从狄利克雷分布中采样的随机向量包含落在 域 [0,1] 中的值,它们的总和为 1。在 numpy 中,它可以这样编程,向量大小为 5:
x = numpy.random.dirichlet(np.ones(5))
相反,我想要一个包含 [-1,1] 且总和为 1 的值的随机向量,I was told 可以通过转换 Dirichlet 生成的 x 向量来实现如y = 2x -1
下面是这种转换的尝试。但是,该脚本无法正常工作,因为 y 没有根据需要求和为 1。怎么解决,还是y = 2x -1不按他们说的做?
x = numpy.random.dirichlet(np.ones(5))
y = 2*x -1
print(x, np.sum(x))
print(y, np.sum(y))
哪个输出:
[0.0209344 0.44791586 0.21002354 0.04107336 0.28005284] 1.0
[-0.9581312 -0.10416828 -0.57995291 -0.91785327 -0.43989433] -3.0000000000000004
【问题讨论】:
-
打印输出实际显示什么?
-
在输出中编辑。总和是一个负整数,缩放到目标元素数(大小 5)
标签: python numpy transformation dirichlet