Ich möchte die Reihenfolge von nur einigen Zeilen in einem Array numpy mischen. Diese Reihen werden immer kontinuierlich sein (z. B. Mischreihen 23-80). Die Anzahl der Elemente in jeder Reihe kann von 1 (so dass das Array tatsächlich 1D ist) bis 100 variieren.Shuffle Reihenfolge einiger Zeilen in numpy Array
Unten ist ein Beispielcode, um zu demonstrieren, wie ich die Methode shuffle_rows()
könnte funktionieren sehen. Wie würde ich eine solche Methode entwickeln, um effizient zu shufflieren?
import numpy as np
>>> a = np.arange(20).reshape(4, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
>>> shuffle_rows(a, [1, 3]) # including rows 1, 2 and 3 in the shuffling
array([[ 0, 1, 2, 3, 4],
[15, 16, 17, 18, 19],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
Wenn ich versuche, ' print (shuffle_rows (a, [1,3])) 'in Python 3 bekomme ich" None "in der Ausgabe? – pir
der Shuffle ist an Ort und Stelle erfolgt. 'print (a)' und Sie werden die gemischten Reihen sehen – tom
Ah, macht Sinn. Danke für die Klarstellung! – pir