계산 방법 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 |