Bitte helfen Sie mir, einen sauberen Weg zu finden, ein neues Array aus bestehenden zu erstellen. Es sollte überabgetastet werden, wenn die Anzahl der Beispiele einer Klasse kleiner ist als die maximale Anzahl der Beispiele in der Klasse. Samples sollten aus dem ursprünglichen Array genommen werden (es spielt keine Rolle, ob zufällig oder sequentiell)
Nehmen wir an, das erste Array ist das:
%Vor%Die letzte Spalte enthält Klassen:
%Vor%Die Verteilung der Klassen ist die folgende:
%Vor%Was ich brauche, ist ein neues Array mit der gleichen Anzahl von Samples aller Klassen zu erstellen, die zufällig aus dem ursprünglichen Array stammen, z. B.
%Vor%Der folgende Code macht das, wonach Sie suchen:
%Vor%Wenn numpy 1.9 freigegeben wird, oder wenn Sie aus dem Entwicklungszweig kompilieren, können die ersten zwei Zeilen zu:
zusammengefasst werden %Vor% Beachten Sie, dass die Funktionsweise von np.random.choice
nicht garantiert, dass alle Zeilen des ursprünglichen Arrays in der Ausgabe vorhanden sind, wie das obige Beispiel zeigt. Wenn das nötig ist, könnten Sie etwas wie: