Ciao a tutti. 
Avrei bisogno di un aiuto. Spero che qualcuno di voi possa aiutarmi. Vi spiego 
il mio problema:

Ho un array di probabilita' di elementi, cioe' [0.88514, 0.0946, 0.006757, 
0.01351]. Io voglio estrarre elementi random proporzionali alla loro 
probabilita', il primo elemento circa l'89% delle volte, il secondo circa il 
10% delle volte eccc. Cio' che ho fatto e' questo:

from numpy as np 
for num in range(300):
a = 5.6e3 
b = 2.5e6 
probs = [0.88514, 0.0946, 0.006757, 0.01351]
cutoffs = np.cumsum(probs)
temp = (b-a)*rand.uniform(0, cutoffs[-1])+a        
 

In pratica ho calcolato la somma cumulativa delle probabilita' e poi ho 
calcolato la distribuzione random (in maniera uniforme) da zero (cioe' da a) 
fino al cutoffs (1). 
Il risultato che ottengo non e' esattamente quello che speravo, nel senso che 
non estrae esattamente numeri random sulla base delle probabilita' che gli do 
in input. 
Che cosa sto sbagliando? Qualcuno di voi puo' aiutarmi? 
Esiste un'altra funzione che mi permette di estrarre numeri random 
nell'intervallo a,b tenendo in considerazione l'array di probabilita' che do in 
input?
Grazie mille per l'aiuto e scusate la poca competenza ma uso da poco python e 
non sono molto brava. 

Francesca 
                                          
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a