Транспонирование матрицы в Python

#python #matrix #transpose

#python #матрица #транспонировать

Вопрос:

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

 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)
  

Ответ №1:

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

 import numpy  
mymatrix=[[1,2,3],[4,5,6]] 
print(mymatrix) 
print("n") 
print(numpy.transpose(mymatrix)) 
  

Ответ №2:

Используйте 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)]
  

Ответ №3:

 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)
  

Комментарии:

1. элегантная альтернатива и без numpy, браво

2. В качестве примечания, это zip-решение действительно только для python2