Перестановка строк и столбцов в NumPy
Понимание манипуляций с массивами NumPy
NumPy предоставляет мощные методы для перестановки строк и столбцов в многомерных массивах, предлагая несколько подходов к преобразованию данных.
Техники перестановки строк
Базовая перестановка строк
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)
Продвинутые методы перестановки строк
## 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)
Техники перестановки столбцов
Базовая перестановка столбцов
## 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)
Гибкая функция перестановки столбцов
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)
Визуализация рабочего процесса перестановки
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]
Аспекты производительности
Метод перестановки |
Временная сложность |
Использование памяти |
Прямая индексация |
O(1) |
Низкое |
Пользовательская функция |
O(1) |
Среднее |
Повторяющиеся перестановки |
O(n) |
Высокое |
Лучшие практики
- Используйте продвинутую индексацию NumPy для эффективной перестановки
- Создавайте повторно используемые функции перестановки
- Учитывайте влияние на память
- Проверяйте входные массивы перед манипуляцией
Рекомендация LabEx
Для достижения оптимальной производительности используйте встроенные возможности индексации NumPy при перестановке строк и столбцов в многомерных массивах.