TypeError: nur integer-Skalare arrays kann konvertiert werden zu einem skalaren index mit 1D-numpy array-Indizes

Ich möchte eine Funktion schreiben, die nach dem Zufallsprinzip wählt Elemente aus einer trainingsmenge, sondern auf der Grundlage der bin Wahrscheinlichkeiten zur Verfügung gestellt. Ich teilen Sie die set-Indizes zu 11 bins, dann erstellen benutzerdefinierte Wahrscheinlichkeiten für Sie.

bin_probs = [0.5, 0.3, 0.15, 0.04, 0.0025, 0.0025, 0.001, 0.001, 0.001, 0.001, 0.001]

X_train = list(range(2000000))

train_probs = bin_probs * int(len(X_train) / len(bin_probs)) # extend probabilities across bin elements
train_probs.extend([0.001]*(len(X_train) - len(train_probs))) # a small fix to match number of elements
train_probs = train_probs/np.sum(train_probs) # normalize
indices = np.random.choice(range(len(X_train)), replace=False, size=50000, p=train_probs)
out_images = X_train[indices.astype(int)] # this is where I get the error

Bekomme ich die folgende Fehlermeldung:

TypeError: only integer scalar arrays can be converted to a scalar index with 1D numpy indices array

Ich finde das seltsam, da ich bereits überprüft, die das array von Indizes, die ich-Kiste, es ist 1-D, es ist integer, und es ist scalar.

Was bin ich?

Hinweis : ich habe versucht, pass indices mit astype(int). Gleichen Fehler.

InformationsquelleAutor 3yanlis1bos | 2018-06-23
Schreibe einen Kommentar