6

我想[-10,10]在python中生成各种维度范围内的统一随机变量。2,3,4,5....维数。

我尝试了 random.uniform(-10,10),但这只是一维的。我不知道如何为 n 维做这件事。我的意思是二维,

[[1 2], [3 4]...]
4

2 回答 2

11

由于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参数以满足您的需要。

于 2013-03-04T04:22:24.677 回答
2

采用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)]
于 2013-03-04T04:20:19.640 回答