2013-03-04 9 views
5

Voglio generare variabili casuali uniformi nell'intervallo [-10,10] di varie dimensioni in python. Numeri di 2,3,4,5 .... dimensione.Come generare variabili casuali n dimensionali in un intervallo specifico in python

Ho provato random.uniform (-10,10), ma è solo unidimensionale. Non so come farlo per la n-dimensione. Con 2 dimensione voglio dire,

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

Che cosa si intende per varie dimensioni – avasal

+0

@DannyBeckett sperano che la modifica aiuta – gizgok

risposta

10

Dal numpy è marcato, è possibile utilizzare le funzioni casuali nella 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 ]]]) 

e modificare il parametro size base alle proprie esigenze.

2

uso random.uniform

import random 

random_variable_in_range_of_minus_ten_and_plus_ten = random.uniform(-10, 10) 

Si noti che è tra (in base alla progettazione) [-10, 10), non [-10, 10]

ora per n-dimensione, non capisco cosa intendi ma supponiamo che si tratti di un vettore con n numeri, puoi:

def n_dimensional_random_variables(n, lbound=-10, rbound=10): 
    return [random.uniform(lbound, rbound) for i in xrange(n)] 
+0

Come fare questo per n dimensione? – gizgok

Problemi correlati