#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