如何在python中生成特定范围内的n维随机变量
问题描述:
我想在python中生成各种维度的[-10,10]
范围内的统一随机变量。数字2,3,4,5 ....维度。如何在python中生成特定范围内的n维随机变量
我试过random.uniform(-10,10),但那只是一个维度。我不知道如何做n维。 通过2维我的意思是,
[[1 2], [3 4]...]
答
由于numpy
被标记,你可以在numpy.random
使用随机函数:
>>> import numpy as np
>>> np.random.uniform(-10,10)
7.435802529756465
>>> np.random.uniform(-10,10,size=(2,3))
array([[-0.40137954, -1.01510912, -0.41982265],
[-8.12662965, 6.25365713, -8.093228 ]])
>>> np.random.uniform(-10,10,size=(1,5,1))
array([[[-3.31802611],
[ 4.60814984],
[ 1.82297046],
[-0.47581074],
[-8.1432223 ]]])
和修改size
参数,以满足您的需求。
答
random.uniform
使用
import random
random_variable_in_range_of_minus_ten_and_plus_ten = random.uniform(-10, 10)
注意,它是(通过设计)[-10,10)不[-10,10]
现在之间对于n维,我并不真正明白你的意思,但假设它是一个有n个数字的向量,你可以:
def n_dimensional_random_variables(n, lbound=-10, rbound=10):
return [random.uniform(lbound, rbound) for i in xrange(n)]
+0
如何做到这一点在n维? – gizgok 2013-03-04 04:21:21
你是什么意思的各个维度 – avasal 2013-03-04 04:19:04
@DannyBeckett希望编辑帮助 – gizgok 2013-03-04 04:20:54