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