2017-06-05 13 views
0

Nehmen wir an, ich habe eine Position Informationen in Form einer zwei großen 1D-Arrays X und Y. Ich möchte nicht-uniforme Positionen von diesem Array Proben. Ich dachte, ich mit np.random.choice dies tun könnte, aber da es nur 1D-Arrays akzeptiert und ich kann natürlich nichtFinden Indizes von ungleichmäßigen Probe mit np.random.choice

Xsample = np.random.choice (X, n, p)

Ysample np.random.choice = (Y, n, p)

mit n Anzahl der Punkte in der Probe, und pa Wahrscheinlichkeits array, da diese verschiedene Punkte für Xsample und Ysample Probe, ich links mit einen Weg finden, um die Indizes einer Stichprobe zu erhalten. Das Problem besteht darin, dass es keine Garantie dafür gibt, dass die Nummern in den Listen eindeutig sind, sodass np.where nicht verwendet werden kann.

Irgendwelche Gedanken?

Antwort

0

Doh, ich kann nur aus den Indizes probieren. Hier ist ein funktionierendes Beispiel:

X = np.array([1, 2, 3, 4, 5]) 
Y = np.array([11, 12, 13, 14, 15]) 
p = [0.25, 0., 0.5, 0.25] 
sample_idxs = np.random.choice(len(X), 2, p) 
sample_idxs 
> array([2, 4]) 

X[sample_idxs] 
> array([3, 5]) 

Y[sample_idxs] 
> array([13, 15]) 
Verwandte Themen