NumPy-Zeilen/Spalten-Austausch
Grundlagen der NumPy-Array-Manipulation
NumPy bietet leistungsstarke Methoden zum Austausch von Zeilen und Spalten in mehrdimensionalen Arrays und ermöglicht verschiedene Ansätze zur Datentransformation.
Techniken zum Zeilen-Austausch
Grundlegender Zeilen-Austausch
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)
Fortgeschrittene Methoden zum Zeilen-Austausch
## 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)
Techniken zum Spalten-Austausch
Grundlegender Spalten-Austausch
## 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)
Flexible Funktion zum Spalten-Austausch
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)
Visualisierung des Austausch-Workflows
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]
Überlegungen zur Leistung
Austauschmethode |
Zeitkomplexität |
Speichernutzung |
Direkte Indizierung |
O(1) |
Niedrig |
Benutzerdefinierte Funktion |
O(1) |
Mittel |
Wiederholte Austausche |
O(n) |
Hoch |
Best Practices
- Nutzen Sie die fortgeschrittene Indizierung von NumPy für einen effizienten Austausch.
- Erstellen Sie wiederverwendbare Austauschfunktionen.
- Berücksichtigen Sie die Auswirkungen auf den Speicher.
- Validieren Sie die Eingabe-Arrays vor der Manipulation.
LabEx-Empfehlung
Für optimale Leistung nutzen Sie die integrierten Indizierungsfunktionen von NumPy, wenn Sie Zeilen und Spalten in mehrdimensionalen Arrays austauschen.