Pyrym
@Pyrym
Python 3 и PyQt5

Как повернуть матрицу?

Бьюсь, бьюсь, и всё никак.
Хочу повернуть многомерный массив на 90 градусов. Т.е.:
A = [[1, 2, 3],
     [4, 5, 6]]

D = [[1,4],
     [2,5],
     [3,6]]

Пока сделал из двумерного массива А одномерный В и сделал скелет для D:
B = [[1, 2, 3],[4, 5, 6]]
C = []
for i in B:
    for j in i:
        C.append(j)
print('C = ',C)
m = len(B) # число строк
n = len(B[0]) # число колонок
D = [[0] * m for i in range(n)] # скелет повёрнутой матрицы

Теперь надо как-то натянуть С на D...
C =  [1, 2, 3, 4, 5, 6]
D =  [[0, 0], [0, 0], [0, 0]]
  • Вопрос задан
  • 12227 просмотров
Решения вопроса 3
@1011
Эта процедура - транспонирование матрицы. Вот здесь есть ответ primat.org/publ/python/transponirovanie_matricy_na...

matrix_t = list(zip(*matrix))
Ответ написан
qlkvg
@qlkvg
python backend developer
в одном из ваших вопросов я уже советовал numpy, хватит писать велосипеды
a = np.array([[1,2,3],[4,5,6]])
a.swapaxes(0,1)
Ответ написан
aRegius
@aRegius
Python Enthusiast
[list(i) for i in zip(A[0], A[1])]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lionsson
zip(*a)
list(zip(*a)
print(a)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы