Verschieben oder drehen ein Array in Python

Muhammad Waiz Khan 30 Januar 2023
  1. Array in Python mit dem Modul collections verschieben
  2. Array verschieben in Python mit der Methode numpy.roll()
  3. Array in Python mit Hilfe des Array Slicing verschieben
Verschieben oder drehen ein Array in Python

Dieser Artikel erklärt, wie man ein Array in Python nach links oder rechts verschiebt oder dreht. Das Drehen eines Arrays bedeutet, dass wir jeden Wert des Arrays um n Positionen nach links oder rechts verschieben oder verschieben. Und Elemente ganz rechts oder ganz links werden an das andere Ende des Arrays verschoben.

Wir können ein Array in Python mit verschiedenen unten erläuterten Methoden verschieben oder drehen.

Array in Python mit dem Modul collections verschieben

Wir können die Methode deque.rotate(n) des Moduls collections verwenden, um ein Array in Python zu drehen. Die Methode deque.rotate(n) dreht das Objekt der Klasse deque um n Positionen, wobei das Vorzeichen von n angibt, ob die deque nach links oder rechts gedreht werden soll.

Wenn der Wert von n positiv ist, wird der Eingang von links nach rechts gedreht, und wenn n negativ ist, wird der Eingang von rechts nach links gedreht. Der folgende Code zeigt, wie ein Array mit der Methode deque.rotate(n) in Python gedreht wird.

from collections import deque

myarray = deque([1, 2, 3, 4, 5, 6])
myarray.rotate(2)  # rotate right
print(list(myarray))
myarray.rotate(-3)  # rotate left
print(list(myarray))

Ausgabe:

[5, 6, 1, 2, 3, 4]
[2, 3, 4, 5, 6, 1]

Array verschieben in Python mit der Methode numpy.roll()

Die Methode numpy.roll(array, shift, axis) nimmt das array als Eingabe und dreht es auf die Positionen, die dem Wert shift entsprechen. Wenn das array ein zweidimensionales Array ist, müssen wir angeben, auf welcher Achse wir die Drehung anwenden müssen; Andernfalls wendet die Methode numpy.roll() die Drehung auf beide Achsen an.

Genau wie die Methode deque.rotate() dreht auch die Methode numpy.roll() das Array von rechts nach links, wenn der Wert positiv ist, und von rechts nach links, wenn der Wert negativ ist. Der folgende Beispielcode zeigt, wie ein Array in Python mit der Methode numpy.roll() gedreht wird.

import numpy as np

myarray = np.array([1, 2, 3, 4, 5, 6])
newarray = np.roll(myarray, 2)  # rotate right
print(newarray)
newarray = np.roll(myarray, -2)  # rotate left
print(newarray)

Ausgabe:

[5 6 1 2 3 4]
[3 4 5 6 1 2]

Array in Python mit Hilfe des Array Slicing verschieben

Wir können die Rotationsfunktion auch mit dem Array-Slicing in Python implementieren. Dieses Verfahren benötigt keine zusätzliche Bibliothek, ist aber weniger effizient als die oben erläuterten Verfahren.

Der folgende Beispielcode zeigt, wie Sie das Array-Slicing verwenden, um ein Array in Python zu drehen oder zu verschieben.

def rotate(input, n):
    return input[n:] + input[:n]


myarray = [1, 3, 5, 7, 9]
print(rotate(myarray, 2))  # rotate left
print(rotate(myarray, -2))  # rotate right

Ausgabe:

[5, 7, 9, 1, 3]
[7, 9, 1, 3, 5]

Verwandter Artikel - Python Array