Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 행렬을 바꾸시겠습니까?

<시간/>

행렬을 전치한다는 것은 열을 행으로 바꾸는 것을 의미합니다. 조옮김 후 if가 어떻게 생겼는지 예를 들어 이해해 봅시다.

다음과 같은 원본 매트릭스가 있다고 가정해 보겠습니다. -

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

위의 행렬 "x"에는 1, 3, 5 및 2, 4, 6을 포함하는 두 개의 열이 있습니다.

따라서 행렬 "x" 위를 전치하면 열이 행이 됩니다. 따라서 위의 행렬의 전치된 버전은 다음과 같습니다. -

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

그래서 우리는 다른 장소에서 다른 값으로 다르게 구성된 또 다른 행렬 'x1'을 가지고 있습니다.

다음은 파이썬에서 이를 수행하는 몇 가지 방법입니다 -

방법 1 - 중첩 루프를 사용한 행렬 전치 -

#Original Matrixx =[[1,2],[3,4],[5,6]]result =[[0, 0, 0], [0, 0, 0]]# i에 대한 행 반복 in range(len(x)):# j in range(len(x[0])):result[j][i] =x[i][j] for r in Resultprint(r) 

결과

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

방법 2 - 중첩 목록 이해를 사용한 행렬 전치

#Original Matrixx =[[1,2],[3,4],[5,6]]result =[[x[j][i] for j in range(len(x))] for i in range(len(x[0]))]for r in Result print(r)

결과

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

목록 이해를 통해 간결한 코드를 작성할 수 있으며 파이썬에서 자주 사용해야 합니다.

방법 3 - Zip을 사용한 행렬 조옮김

#Original Matrixx =[[1,2],[3,4],[5,6]]result =map(list, zip(*x))for r in Result print(r)

결과

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

방법 4 - numpy 라이브러리를 사용한 행렬 전치Numpy 라이브러리는 큰 다차원 배열을 효율적으로 조작하기 위해 구축된 배열 처리 패키지입니다.

import numpy#Original Matrixx =[[1,2],[3,4],[5,6]]print(numpy.transpose(x))

결과

[[1 3 5][2 4 6]]