Как повернуть матрицу на 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. Вы можете выбрать любой из этих способов, в зависимости от ваших потребностей и предпочтений.

Надеюсь, эта статья помогла вам разобраться в теме. Удачи в программировании!

Видео по теме

Переворачиваем двумерный массив на 90 градусов в одной строке или как транспонировать матрицу

Поворот матрицы на 90 градусов 1/3

4.5 Поворот матрицы. "Поколение Python": курс для продвинутых. Курс Stepik

Похожие статьи:

Как научиться делать игры на python с помощью эмодзи 🔥🎮

Как начать работать программистом Python: советы и руководство для начинающих

Как обновить версию Python на Mac OS: простое руководство для начинающих

Как повернуть матрицу на 90 градусов с помощью Python?

🐍 Что такое свойство в Python? Узнаем все секреты! 💻🔑

Что это такое: слушатель Python

Как создать собственный движок на Python: руководство для начинающих