계산 방법 1

  • mat1이 n행 m열, mat2이 p행 q열
  • 행렬의 곱셈 연산은 3중 for문으로 해결할 수 있다.
result = [[0] * n for _ in range(n)]

for i in range(n):
    for j in range(q):
        for k in range(m):
            result[i][j] += mat1[i][k] * mat2[k][j]

 


계산 방법 2

  • *는 unpacking을 수행한다. 따라서 unpacking후 zip을 수행하면 행과 열을 바꿀 수 있다.
  • mat2의 행과 열을 바꾼 후에는, 두 리스트의 곱셈과 같은 연산 과정이다. 
result = []

for mat1 in a:
    tmp = []
    for mat2 in list(zip(*b)):
        tmp.append(sum([x*y for x, y in zip(mat1, mat2)]))
    result.append(tmp)

'Python 활용하기' 카테고리의 다른 글

데코레이터  (0) 2023.11.10
변수의 범위  (0) 2023.10.24
2차원 리스트 생성  (0) 2023.07.31
[자료구조] 트라이(Trie)  (0) 2023.01.19
[Algorithm] LIS(Longest Increase Sequence)  (0) 2023.01.12

+ Recent posts