🔄 Как повернуть матрицу в Питоне на 90 градусов? Инструкция и примеры 🖥️
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
rotated_matrix = np.rot90(matrix)
print(rotated_matrix)
[[3 6 9]
[2 5 8]
[1 4 7]]
Детальный ответ
Как повернуть матрицу в Python на 90 градусов?
Когда дело доходит до манипуляций с матрицами в Python, есть множество операций, которые можно выполнить. Одна из таких операций - поворот матрицы на 90 градусов. В этой статье мы рассмотрим различные подходы к этой задаче.
Метод 1: Использование встроенной функции zip()
Первый подход, который мы рассмотрим, это использование функции zip(). Функция zip() принимает несколько итерируемых объектов и возвращает кортежи, содержащие элементы с одинаковыми индексами из каждого объекта. Мы можем использовать эту функцию, чтобы повернуть матрицу на 90 градусов следующим образом:
def rotate_matrix(matrix):
rotated = list(zip(*matrix[::-1]))
return rotated
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_matrix = rotate_matrix(matrix)
print(rotated_matrix)
В этом примере мы определяем функцию rotate_matrix(), которая принимает матрицу в качестве параметра. Мы используем срез [::-1], чтобы развернуть матрицу в обратном порядке, а затем передаем ее в функцию zip(), чтобы получить повернутую матрицу. Наконец, мы возвращаем повернутую матрицу. Пример вывода:
[(7, 4, 1),
(8, 5, 2),
(9, 6, 3)]
Метод 2: Использование модуля numpy
Второй подход, который мы рассмотрим, это использование модуля numpy. Numpy - это библиотека Python, предназначенная для выполнения математических операций, включая манипуляции с массивами и матрицами.
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
rotated_matrix = np.rot90(matrix)
print(rotated_matrix)
В этом примере мы используем функцию np.rot90() из модуля numpy, чтобы повернуть матрицу на 90 градусов. Пример вывода:
[[3 6 9]
[2 5 8]
[1 4 7]]
Как видите, результат совпадает с результатом из первого метода.
Метод 3: Использование циклов
Третий подход, который мы рассмотрим, это использование циклов для поворота матрицы. Мы можем создать новую матрицу, перебирая элементы исходной матрицы и помещая их в соответствующие позиции в новой матрице.
def rotate_matrix(matrix):
n = len(matrix)
rotated = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
rotated[j][n-i-1] = matrix[i][j]
return rotated
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
rotated_matrix = rotate_matrix(matrix)
print(rotated_matrix)
В этом примере мы определяем функцию rotate_matrix(), которая принимает матрицу в качестве параметра. Мы создаем новую матрицу "rotated" с размером nxn, где n - размер исходной матрицы. Затем мы перебираем элементы исходной матрицы и помещаем их в соответствующие позиции в новой матрице, используя формулы j и n-i-1.
Это был обзор трех различных методов для поворота матрицы на 90 градусов в Python. Вы можете выбрать тот метод, который наиболее удобен для вашего конкретного случая. Удачи в освоении работы с матрицами в Python!