2016-06-05 5 views
0

Ich möchte Tabellen für einen Parameter erstellen (sagen wir X_n für Produkte von 1 bis 3).
Es gibt bestimmte Werte, die der Parameter mit einem gegebenen Wahrscheinlichkeitswert annehmen kann.So verbinden Sie Zeilenwerte einer Matrix mit einem Index für einen Parameter

n = 1 Anbetracht I können die Werte simulieren, die X_1

mit dem folgenden Code nehmen
from scipy.stats import rv_discrete 
values = [-2, 0, 2] 
probabilities = [0.40, 0.2, 0.4] 
distrib = rv_discrete(values=(values, probabilities)) 
distrib.rvs(size=10) 

Dieser Code gibt folgende Ergebnis:

Array ([2, -2, 0, 0, 2, 0, 0, 0, 0, -2])

Jetzt für den realen Fall, den ich tun will es, wo n = 3

Ich habe versucht, die Tabellen wie folgt zu erstellen, aber fehlgeschlagen;

num_products=3 
for n in range(num_products): 
Xvalues_[n] = np.array([(-2,0,2), (0,2,3),(-2,0,2)]) 
Xprobabilities[n] = np.array([(0.4,0.2,0.4), (0.2,0.4,0.4),(0.4,0.4,0.2)]) 
+1

'failed' ist keine akzeptable Frage. :) Wir erfordern mehr Details. Was ist falsch, abgesehen von schlechtem Einzug und vereinheitlichen 'Xvalues_'? – hpaulj

Antwort

0

Ich bin nicht sicher, was Sie damit machen wollen, so ist dies Ausdruck von nur das Ergebnis für jeden

import numpy as np 
from scipy.stats import rv_discrete 

Xvalues = np.array([(-2,0,2), (0,2,3),(-2,0,2)]) 
Xprobabilities = np.array([(0.4,0.2,0.4), (0.2,0.4,0.4),(0.4,0.4,0.2)]) 
for values,probabilities in zip(Xvalues, Xprobabilities): 
    distrib = rv_discrete(values=(values,probabilities)) 
    print(distrib.rvs(size=10)) 
+0

@ecembv Wenn dies Ihre Frage gelöst hat, bitte upvote und als beantwortet markieren! –