2017-07-12 1 views
-1

dieses Array vor:Vertausche nur bestimmte Elemente in einem Array in Python

array = np.array([2, 4, 23, 11, 0, 9]) 

Gibt es einen Weg, um eine zufällige Permutation der Elemente mit ungeradem Index zu bekommen?

Beispiel für mögliche Ausgänge:

[2, 11, 23, 4, 0, 9] 
[2, 4, 23, 9, 0, 11] 

Beachten Sie, dass die Elemente mit geradem Index, 2, 23, sollten 0 fest bleiben

+0

Ihre Frage neu formuliert werden könnte - wie kann ich Index die * ungerade * Elemente und arbeiten auf ihnen - [Numpy Indexing] (https://docs.scipy.org/doc/nu mpy/reference/arrays.indexing.html # indexing) – wwii

Antwort

4

Sie können alle ungeraden Elemente auswählen array[1::2] verwenden und mischen sie np.random.shuffle() mit :

np.random.shuffle(array[1::2]) 
+0

Beachten Sie, dass die * Werte bei ungeraden Indizes * gemischt werden, und nicht Elemente mit einem ungeraden Wert. Ich weiß, dass das korrekt ist und was OP verlangt hat, aber die Aussage "Du kannst alle seltsamen Elemente mit' array [1 :: 2] auswählen "' verwirrte mich zunächst ein wenig. Dies könnte für einige Leser eine nützliche Klarstellung sein. –

Verwandte Themen