การคูณเมทริกซ์เป็นกระบวนการที่ใช้เวลานาน โดยที่แต่ละองค์ประกอบจากแต่ละแถวและคอลัมน์ของเมทริกซ์จะถูกคูณและเพิ่มด้วยวิธีใดวิธีหนึ่ง สำหรับการคูณเมทริกซ์ จำนวนคอลัมน์ในเมทริกซ์แรกต้องเท่ากับจำนวนแถวในเมทริกซ์ที่สอง เมทริกซ์ผลลัพธ์มีจำนวนแถวของคอลัมน์แรกและจำนวนคอลัมน์ของเมทริกซ์ที่สอง
สำหรับเมทริกซ์ขนาดเล็ก เราอาจออกแบบการซ้อนลูปและค้นหาผลลัพธ์ สำหรับเมทริกซ์ที่ใหญ่กว่า เราจำเป็นต้องมีฟังก์ชันในตัวใน python เพื่อแก้ไขปัญหานี้ เราจะเห็นวิธีการทั้งสองด้านล่าง
ใช้สำหรับวนซ้ำ
เราใช้เมทริกซ์สองมิติ 2x3 และ 3x2 (แถว x คอลัมน์) ผลลัพธ์ของการคูณเมทริกซ์คือเมทริกซ์ขนาด 2x2 เรามี nested for loop ที่ออกแบบมาเพื่อผ่านคอลัมน์ของ A และแถวของ B และเพิ่มผลคูณของค่าในแถวและคอลัมน์เหล่านั้น
ตัวอย่าง
#matrix A with 2 rows A = ([5,10,15],[20,25,30]) #matrix B with 2 columns B = ([4,8],[12,10],[14,16]) result = [[0 for x in range(2)] for y in range(2)] for i in range(len(A)): # iterate through columns of A for j in range(len(B[0])): # iterate through rows of B for k in range(len(B)): result[i][j] += A[i][k] * B[k][j] for r in result: print(r)
ผลลัพธ์
การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:
[350, 380] [800, 890]
การใช้ Numpy
Numpy มีฟังก์ชันในตัวชื่อ dot ซึ่งทำการคูณเมทริกซ์ จำนวนบรรทัดของโปรแกรมของเราน้อยลงมากและไวยากรณ์ก็ง่ายมากเช่นกัน
ตัวอย่าง
import numpy as np #matrix A matrix_A = ([5,10,15],[20,25,30]) #matrix B matrix_B = ([4,8],[12,10],[14,16]) result = np.dot(matrix_A,matrix_B) # Result print(result)
ผลลัพธ์
การเรียกใช้โค้ดด้านบนทำให้เราได้ผลลัพธ์ดังต่อไปนี้:
[[350 380] [800 890]]