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

두 행렬을 곱하는 파이썬 프로그램


이 기사에서는 아래 주어진 문제 설명에 대한 솔루션에 대해 알아볼 것입니다.

문제 설명 − 두 개의 행렬이 주어졌으므로 곱하고 결과를 출력해야 합니다.

두 행렬을 곱하려면 첫 번째 행렬의 열이 두 번째 행렬의 행과 같아야 합니다.

이 조건이 참으로 평가될 때마다 계산이 수행됩니다.

이제 아래 구현에서 개념을 살펴보겠습니다-

접근법 1 - 무차별 대입 방식

예시

A = [[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
]
B = [[5, 3, 3],
   [6, 5, 4],
   [0, 2, 0]
]
result= [[0, 0, 0],
   [0, 0, 0],
   [0, 0, 0]
]
# iterating by row
for i in range(len(A)):
   # iterating by column
   for j in range(len(B[0])):
      # iterating by rows
      for k in range(len(B)):
         result[i][j] += A[i][k] * B[k][j]
for ele in result:
   print(ele)

출력

[17, 19, 11]
[50, 49, 32]
[83, 79, 53]

접근법 2 - zip 기능 사용

예시

A = [[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
]
B = [[5, 3, 3],
   [6, 5, 4],
   [0, 2, 0]
]
# using built-in zip function
result = [[sum(a * b for a, b in zip(A_row, B_col))
   for B_col in zip(*B)]
   for A_row in A]
for ele in result:
   print(ele)

출력

[17, 19, 11]
[50, 49, 32]
[83, 79, 53]

결론

이 기사에서는 두 행렬을 곱하는 방법을 배웠습니다.