Как отзеркалить матрицу в python
Перейти к содержимому

Как отзеркалить матрицу в python

  • автор:

Python. Нужно повернуть матрицу на 90 градусов

n = 3
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = len(a)
for i in range(len(a)):
for j in range(len(a[i])):
a[i][j] = a[n-j-1][i]
for z in a:

Дополнен 7 лет назад

n = 3
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = len(a)
for i in range(len(a)):
. for j in range(len(a[i])):
. a[i][j] = a[n-j-1][i]
for z in a:
. print(z)

Голосование за лучший ответ

1 2 3
4 5 6
7 8 9

7 4 1
8 5 2
9 6 3

Столбец становится строкой j=i ты верно написал
Столбец = 2-i с учетом что первый есть нулевой

то бишь обменять
a[i][j] с a[j][2-i] (ну и обменять не значит равно)

Володя БарбаричУченик (178) 7 лет назад

то есть ты имеешь в виду в 6 рядке кода должно быть a[i][j] = a[j][2-i].
ноо оно неправильно работает

Зеркальное отображение матрицы

Дана квадратная матрица чисел. Напишите программу, которая зеркально отображает её элементы относительно горизонтальной оси симметрии.

Формат входных данных
На вход программе подаётся натуральное число n — количество строк и столбцов в матрице, затем элементы матрицы построчно через пробел.

Формат выходных данных
Программа должна вывести матрицу в которой зеркально отображены элементы относительно горизонтальной оси симметрии.

n = int(input()) matrix = [] for _ in range(n): matrix.insert(0, list(map(int, input().split()))) for line in matrix: print(*line)

Похожие записи:
  1. Эффективный ввод-вывод в разных языках программирования
  2. Обмен диагоналей матрицы
  3. Матрицы. Максимум в таблице
  4. Сортировка столбцов матрицы по возрастанию элементов первой строки

Добавить комментарий Отменить ответ

Многие современные телевизоры среднего и нижнего ценового диапазона не способны обеспечить качественное звучание. Во

Книга «CRM-системы» представляет собой обзор и анализ различных CRM-систем, используемых в современном бизнесе. Автор рассматривает популярные

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Отражение матрицы по горизонтальной оси

#1 Дек. 9, 2018 18:12:16

Zyxer25 Зарегистрирован: 2018-11-25 Сообщения: 2 Репутация: 0 Профиль Отправить e-mail

Отражение матрицы по горизонтальной оси

Помогите разработать функцию, которая зеркально отражает входную матрицу по горизонтали

#2 Дек. 10, 2018 06:17:25

Rafik Зарегистрирован: 2018-09-04 Сообщения: 231 Репутация: 27 Профиль Отправить e-mail

Отражение матрицы по горизонтальной оси

Даю подсказку: всю матрицу представить как список, каждая строка матрицы — список, вложенный в первый. У списка есть такая полезная вещь, как reverse. После применения reverse получаем список с элементами в обратном порядке. Эта функция ничего не возвращает, а только перестраивает список.

matr = [[1,2,5,4,0],[9,1,3,1,2]] for stroka in matr: stroka.reverse() print(stroka) 

Как повернуть массив на 90 градусов python

Проще всего это будет сделать с помощью Numpy:

import numpy as np l = [[0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]] a = np.array(l) # a = array([[0, 0, 0, 0], # [0, 0, 0, 1], # [0, 0, 0, 1], # [0, 0, 0, 1]], dtype=int64) # поворот: np.rot90(a) # a = array([[0, 1, 1, 1], # [0, 0, 0, 0], # [0, 0, 0, 0], # [0, 0, 0, 0]], dtype=int64) # можно несколько раз повернуть: np.rot90(a, k=2) # a = array([[1, 0, 0, 0], # [1, 0, 0, 0], # [1, 0, 0, 0], # [0, 0, 0, 0]], dtype=int64) # "вернуть" к обычному списку списков: np.rot90(a).tolist() # => [[0, 1, 1, 1], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] 

Соответственно для поворота по часовой стрелке используйте np.rot90(a, k=3) (270 градусов).

Если не использовать Numpy, то для поворота по часовой стрелке есть такой способ:

def transposed(matrix): return [[*col] for col in zip(*matrix)] def rot90: return list(map(reversed, transposed(matrix))) # или в одно действие def rot90(matrix): return [list(reversed(col)) for col in zip(*matrix)] 

. а для поворота против часовой:

def rot90(matrix): return [list(row) for row in list(zip(*matrix))[::-1]] 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *