2013-03-04 127 views
5

我想在python中生成各種維度的[-10,10]範圍內的統一隨機變量。數字2,3,4,5 ....維度。如何在python中生成特定範圍內的n維隨機變量

我試過random.uniform(-10,10),但那只是一個維度。我不知道如何做n維。 通過2維我的意思是,

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

你是什麼意思的各個維度 – avasal 2013-03-04 04:19:04

+0

@DannyBeckett希望編輯幫助 – gizgok 2013-03-04 04:20:54

回答

10

由於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參數,以滿足您的需求。

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)] 
+0

如何做到這一點在n維? – gizgok 2013-03-04 04:21:21

相關問題