Транспонировать матрицы в Python - PullRequest
4 голосов
/ 26 марта 2019

Я новичок в Python, я работаю над Transpose матрицы, но я нашел это длинным кодом, любая короткая процедура, пожалуйста!

mymatrix=[(1,2,3),(4,5,6),(7,8,9),(10,11,12)] 
for myrow in mymatrix: 
print(myrow) 
print("\n") 
t_matrix = zip(*mymatrix) 
for myrow in t_matrix: 
print(myrow)

Ответы [ 3 ]

7 голосов
/ 26 марта 2019

Вам необходимо установить numpy, чтобы импортировать его Numpy transpose возвращает аналогичный результат, когда
наносится на 1D матрицу

import numpy  
mymatrix=[[1,2,3],[4,5,6]] 
print(mymatrix) 
print("\n") 
print(numpy.transpose(mymatrix)) 
4 голосов
/ 26 марта 2019

Использование zip:

mymatrix=[(1,2,3),(4,5,6),(7,8,9),(10,11,12)] 
myTransposedMatrix = list(zip(*mymatrix))

>>> myTransposedMatrix
[(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)]
4 голосов
/ 26 марта 2019
import numpy as np
matrix = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]] )
print(matrix.T)

без использования numpy


Редактировать: для Python2 и Python3

Python3

[*zip(*matrix)]

Python2

zip(*matrix)
...