Matrix Addition in Python | Addition of Two Matrices

Hello Programmers, today’s article is about matrix addition in python. We will discuss different ways of adding two matrices in python. Matrix addition in python means adding up the elements of one matrix with another. The added up elements are then stored in a third matrix.

Matrix addition in Python is a technique by which you can add two matrixes of the same shape. If the matrices don’t have the same shape, the addition will not be possible. Moreover, the addition in matrices works one way, which means that the (1,1) element will only add to (1, 1) element of another matrix.

Before we start with different ways of matrix addition, let me just cite an example of matrix addition for you.

Let A and B be two matrices which are added and the result is stored in a new matrix C.

A = [ [1, 2, 3],           
          [4, 5, 6] ] 
B = [ [6, 5, 4],           
          [3, 2, 1] ] 
C = [ [7, 7, 7],           
          [7, 7, 7] ] 

The elements of C matrix are sum of the elements of A and B matrix i.e.,

[ [1+6, 2+5, 3+4],     
  [4+3, 5+2, 6+1] ] 

Different ways of matrix addition in python:

  • Using Nested for loop
  • Use of Nested list Comprehension
  • With sum and zip() function
  • Using NumPy

Matrix Addition using Nested for loop

EXAMPLE:

<pre class="wp-block-syntaxhighlighter-code">A = [[1,2,3], 
     [4,5,6], 
     [7 ,8,9]] 
  
B = [[9,8,7], 
     [6,5,4], 
     [3,2,1]] 
  
  
result = [[0,0,0], 
          [0,0,0], 
          [0,0,0]] 
  
# iterate through rows 
for i in range(len(A)):    
# <a href="https://www.pythonpool.com/python-iterate-through-list/" target="_blank" rel="noreferrer noopener">iterate</a> through columns 
    for j in range(len(A[0])): 
        result[i][j] = A[i][j] + B[i][j] 
  
for x in result: 
    print(x) </pre>

OUTPUT:

[10,10,10]
[10,10,10]
[10,10,10]

EXPLANATION:

In this example, nested for loops are used to iterate through each row and columns of the given matrices. After each iteration, we add the corresponding elements of the A and B matrix. And store the sum in the third matrix called result.

Using Nested List Comprehension method

EXAMPLE:

A = [[1,2,3], 
    [4 ,5,6], 
    [7 ,8,9]] 
   
B = [[9,8,7], 
    [6,5,4], 
    [3,2,1]] 
  
result = [[A[i][j] + B[i][j]  for j in range
(len(A[0]))] for i in range(len(A))] 
   
for r in result: 
    print(r) 

OUTPUT:

[10,10,10]
[10,10,10]
[10,10,10]

EXPLANATION:

List comprehension means nested list, i.e., list inside a list. This method is used to implement a matrix as a nested list. In this example, list comprehension is used for iterating through each element of the given matrices. List comprehension method of matrix addition in python helps writing concise and to the point codes. Thus, it makes the codes of matrix addition simpler and helpful.

Matrix Addition with Sum and zip() function

EXAMPLE:

A = [[1,2,3], 
    [4 ,5,6], 
    [7 ,8,9]] 
   
B = [[9,8,7], 
    [6,5,4], 
    [3,2,1]] 
  
result = [map(sum, zip(*i)) for i in zip(X, Y)] 
   
print(result) 

OUTPUT:

[[10, 10, 10], [10, 10, 10], [10, 10, 10]]

EXPLANATION:

The zip() function’s function is to accept iterator of each element of the matrix, map them, and add them using the sum() function. It returns and stores the result in the mapping form.

Matrix addition using NumPy

EXAMPLE:

import numpy as np
import random

# Routine for printing a 2x2 matrix

def PrintMatrix(matrix_in):

for x in range(0, matrix_in.shape[0]):
for y in range(0, matrix_in.shape[1]):
print("%d \t"%(matrix_in[x][y]), end=''
if(y%3>1):
print("\n")   

 

# Function to populate a 2x2 matrix with random data

def FillMatrix(matrix_in):

for x in range(0, matrix_in.shape[0]):
for y in range(0, matrix_in.shape[1]):
matrix_in[x][y] = random.randrange(2, 10) + 2

 

# Create matrices using ndarray

matrix1 = np.ndarray((3,3))
matrix2 = np.ndarray((3,3))

 

# Fill the matrices i.e., the two dimensional arrays created using ndarray objects

FillMatrix(matrix1)

FillMatrix(matrix2)

 
# Add two matrices - two nd arrays

add_results = matrix1.__add__(matrix2)


# Print Matrix1

print("Matrix1:")

PrintMatrix(matrix1)

 
# Print Matrix2

print("Matrix2:")

PrintMatrix(matrix2)

 
# Print the results of adding two matrices

print("Result of adding Matrix1 and Matrix2:")

PrintMatrix(add_results)

OUTPUT:

Matrix1:

[1   2   3 

4   5   6  

7   8   9]


Matrix2:

[9   8   7  

6   5   4

3   2   1]


Result of adding Matrix1 and Matrix2:

[10 10 10

10 10 10

10 10 10]

EXPLANATION:

The first condition for adding two matrices is that both the matrices should have the same number of rows and columns. The result thus obtained also has the same number of rows and columns. The ndarray of the NumPy module helps create the matrix. The method __add__() provided by the ndarray of the NumPy module performs the matrix addition . The __add__ () function adds two ndarray objects of the same shape and returns the sum as another ndarray object.

Must Read

Conclusion:

This article gives an insight into different ways of matrix addition in python. You can use any of the above ways as per your need and convenience. Using List Comprehension is one of the simplest and concise methods of matrix addition. This method is helpful and must be included quite frequently in python programs.

Still have any doubts or questions, do let me know in the comment section below. I will try to help you as soon as possible.

Happy Pythoning!

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments