Trusted answers to developer questions

How to multiply matrices in Python

Get Started With Data Science

Learn the fundamentals of Data Science with this free course. Future-proof your career by adding Data Science skills to your toolkit — or prepare to land a job in AI, Machine Learning, or Data Analysis.

Matrix multiplication is only possible if the column of the second matrix is equal to rows of the first. In Python, a matrix can be represented in the form of a nested list ( a list inside a list ).


Syntax

# sample code for 3x2 matrix
X = [[1,2],[3,4],[5,6]]
svg viewer
1 of 4

Implementation

In Python, matrix multiplication can be implemented

  1. using nested loops
  2. using nested list comprehension

Using nested loops

In this, for loops are used to compute the resultant matrix. This method becomes computationally expensive if the order of matrices increases.


Example code

# Program to multiply two matrices using nested loops
# 3x2 matrix
X = [ [1,2],[3,4],[4,5] ]
# 2x3 matrix
Y = [ [1,2,3],[4,5,6] ]
# resultant matrix
result = [ [0,0,0],[0,0,0],[0,0,0] ]
my_list = []
# iterating rows of X matrix
for i in range( len(X) ):
# iterating columns of Y matrix
for j in range(len(Y[0])):
# iterating rows of Y matrix
for k in range(len(Y)):
result[i][j] += X[i][k] * Y[k][j]
for r in result:
print(r)

Using nested list comprehension

List comprehension is very useful when creating new lists from other iterables. This method is used to iterate over each element for the given expression.

svg viewer

Example code

# Program to multiply two matrices using list comprehension
# 3x2 matrix
X = [ [1,2],[3,4],[4,5] ]
# 2x3 matrix
Y = [ [1,2,3],[4,5,6] ]
# resultant matrix
resultant = [[sum(a*b for a,b in zip(X_row,Y_col)) for Y_col in zip(*Y)] for X_row in X]
# printing matrix.
for x in resultant:
print(x)

RELATED TAGS

matrices
python
Copyright ©2024 Educative, Inc. All rights reserved
Did you find this helpful?