hihunjin   3년 전

제 코드에서 matmult와 matmult2가 왜 다르게 나오나요?

zip을 할때와, zip을 안할때가 어떻게 다른지 모르겠어요.

3번째줄 zip_b의 output은 list of tuples로 나오긴 하는데요..

seico75   3년 전

list(zip(*a))는 a행렬의 트랜스포즈를 구합니다. 

>>> a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> list(zip(*a))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>>

아시다시피 행렬의 곱셈은 a의 한행과 b의 한 열을 요소대요소로 곱한것의 합으로 행렬를 만들는 것이라서

a와 b의 트랜스포즈를 한 행씩 곱의 합을 구하는 방식으로 행렬의 곱을 구한 것이 matmult 함수입니다.

댓글을 작성하려면 로그인해야 합니다.