Sto cercando una funzione semplice che possa generare una matrice di valori casuali specificati in base alle loro probabilità corrispondenti (anche specificate). Ho solo bisogno di generare valori float, ma non vedo perché non dovrebbe essere in grado di generare alcuno scalare. Posso pensare a molti modi di costruire questo da funzioni esistenti, ma penso che probabilmente mi sono appena perso un'evidente funzione SciPy o NumPy.Generazione di variabili casuali discrete con pesi specificati utilizzando SciPy o NumPy
Es .:
>>> values = [1.1, 2.2, 3.3]
>>> probabilities = [0.2, 0.5, 0.3]
>>> print some_function(values, probabilities, size=10)
(2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2)
Nota: Ho trovato scipy.stats.rv_discrete ma non capisco come funziona. In particolare, non capisco che cosa questo (sotto) significa né che cosa si dovrebbe fare:
numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs
Se rv_discrete è quello che io dovrei essere in uso, la prego di fornirmi un semplice esempio e una spiegazione di quanto sopra " forma "affermazione?
Grande! Ma la sintassi corretta è: np.random.choice (elementi, 10, p = lista (probabilità)) – Sina
Nice. Penso che questa versione sia uscita dopo che ho postato la mia domanda originale (penso che sia stata rilasciata per la prima volta in 1.7.0, che credo sia arrivata nel 2013). – TimY
Molto bello! Sembra funzionare anche senza casting per elencare: np.random.scelta (elementi, 10, p = probabilità)). – zeycus