Échange de lignes/colonnes avec NumPy
Comprendre la manipulation des tableaux NumPy
NumPy offre des méthodes puissantes pour échanger les lignes et les colonnes dans les tableaux multidimensionnels, proposant plusieurs approches pour la transformation des données.
Techniques d'échange de lignes
Échange de lignes de base
import numpy as np
## Create a sample matrix
matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
## Swap specific rows
matrix[[0, 2]] = matrix[[2, 0]]
print(matrix)
Méthodes avancées d'échange de lignes
## Using numpy indexing
def swap_rows(arr, row1, row2):
arr[[row1, row2]] = arr[[row2, row1]]
return arr
## Example usage
matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
swapped_matrix = swap_rows(matrix, 0, 2)
Techniques d'échange de colonnes
Échange de colonnes de base
## Swap columns using advanced indexing
matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
## Swap first and last columns
matrix[:, [0, 2]] = matrix[:, [2, 0]]
print(matrix)
Fonction flexible d'échange de colonnes
def swap_columns(arr, col1, col2):
arr[:, [col1, col2]] = arr[:, [col2, col1]]
return arr
## Example implementation
matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
swapped_matrix = swap_columns(matrix, 0, 2)
Visualisation du workflow d'échange
graph TD
A[Original NumPy Array] --> B{Swap Operation}
B --> |Row Swap| C[Rows Rearranged]
B --> |Column Swap| D[Columns Rearranged]
C & D --> E[Transformed Array]
Méthode d'échange |
Complexité temporelle |
Utilisation de la mémoire |
Indexation directe |
O(1) |
Faible |
Fonction personnalisée |
O(1) |
Modérée |
Échanges répétés |
O(n) |
Élevée |
Bonnes pratiques
- Utilisez l'indexation avancée de NumPy pour un échange efficace
- Créez des fonctions d'échange réutilisables
- Tenez compte des implications mémoire
- Validez les tableaux d'entrée avant manipulation
Recommandation de LabEx
Pour des performances optimales, utilisez les capacités d'indexation intégrées de NumPy lors de l'échange de lignes et de colonnes dans les tableaux multidimensionnels.