Décaler ou faire pivoter un tableau en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Shift Array en Python à l’aide du module collections
  2. Shift Array en Python à l’aide de la méthode numpy.roll()
  3. Décaler un tableau en Python en utilisant le découpage de tableau
Décaler ou faire pivoter un tableau en Python

Cet article explique comment décaler ou faire pivoter un tableau vers la gauche ou vers la droite en Python. Faire pivoter un tableau signifie que nous déplaçons ou décalons chaque valeur du tableau vers la gauche ou la droite de n positions. Et les éléments les plus à droite ou à gauche se déplacent vers l’autre extrémité du tableau.

Nous pouvons déplacer ou faire pivoter un tableau en Python en utilisant diverses méthodes expliquées ci-dessous.

Shift Array en Python à l’aide du module collections

On peut utiliser la méthode deque.rotate(n) du module collections pour faire tourner un tableau en Python. La méthode deque.rotate(n) fait pivoter l’objet de classe deque n positions, où le signe de n indique s’il faut faire pivoter le deque vers la gauche ou vers la droite.

Si la valeur de n est positive, l’entrée sera tournée de gauche à droite, et si le n est négatif, l’entrée sera tournée de droite à gauche. Le code ci-dessous montre comment faire pivoter un tableau à l’aide de la méthode deque.rotate(n) en Python.

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))

Production :

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

Shift Array en Python à l’aide de la méthode numpy.roll()

La méthode numpy.roll(array, shift, axis) prend le tableau en entrée et le fait pivoter vers les positions égales à la valeur shift. Si le tableau est un tableau à deux dimensions, nous devrons spécifier sur quel axe nous devons appliquer la rotation; sinon, la méthode numpy.roll() appliquera la rotation sur les deux axes.

Tout comme la méthode deque.rotate(), le numpy.roll() fait également pivoter le tableau de droite à gauche si la valeur est positive et de droite à gauche si la valeur est négative. L’exemple de code ci-dessous montre comment faire pivoter un tableau en Python à l’aide de la méthode numpy.roll().

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)

Production :

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

Décaler un tableau en Python en utilisant le découpage de tableau

Nous pouvons également implémenter la fonction de rotation en utilisant le découpage de tableau en Python. Cette méthode ne nécessite aucune bibliothèque supplémentaire mais est moins efficace que les méthodes expliquées ci-dessus.

L’exemple de code ci-dessous montre comment utiliser le découpage de tableau pour faire pivoter ou déplacer un tableau en Python.

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

Production :

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

Article connexe - Python Array