<div dir="ltr">Ciao a tutti. <br>Avrei bisogno di un aiuto. Spero che qualcuno di voi possa aiutarmi. Vi spiego il mio problema:<br><br>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:<br><br>from numpy as np <br>for num in range(300):<br>a = 5.6e3 <br>b = 2.5e6 <br>probs = [0.88514, 0.0946, 0.006757, 0.01351]<br>cutoffs = np.cumsum(probs)<br>temp = (b-a)*rand.uniform(0, cutoffs[-1])+a <br> <br><br>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). <br>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. <br>Che cosa sto sbagliando? Qualcuno di voi puo' aiutarmi? <br>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?<br>Grazie mille per l'aiuto e scusate la poca competenza ma uso da poco python e non sono molto brava. <br><br>Francesca </div>