w3resource

NumPy: Add elements in a matrix, do not add an element below an element if it is 0

NumPy: Basic Exercise-42 with Solution

Write a NumPy program to add elements to a matrix. If an element in the matrix is 0, we will not add the element below this element.

Sample Solution :

Python Code :

# Importing the NumPy library with an alias 'np'
import numpy as np

# Defining a function 'sum_matrix_Elements' that takes a matrix 'm' as input
def sum_matrix_Elements(m):
    # Converting the input matrix 'm' into a NumPy array 'arra'
    arra = np.array(m)
    
    # Initializing a variable 'element_sum' to store the sum of matrix elements
    element_sum = 0  
    
    # Looping through rows of the array
    for p in range(len(arra)):
        # Looping through columns of the array
        for q in range(len(arra[p])):
            # Checking if the element is 0 and the row index is less than the last row
            if arra[p][q] == 0 and p < len(arra)-1:
                # Assigning 0 to the element in the next row at the same column index
                arra[p+1][q] = 0  
            
            # Adding the current element to the total sum
            element_sum += arra[p][q]  
    
    # Returning the sum of matrix elements
    return element_sum

# Initializing a matrix 'm' using a list of lists
m = [[1, 1, 0, 2],
     [0, 3, 0, 3],
     [1, 0, 4, 4]]

# Printing the original matrix 'm'
print("Original matrix:")
print(m)

# Printing the sum of matrix elements using the 'sum_matrix_Elements' function
print("Sum:")
print(sum_matrix_Elements(m)) 

Sample Output:

Original matrix:
[[1, 1, 0, 2], [0, 3, 0, 3], [1, 0, 4, 4]]
Sum:
14

Explanation:

In the above code -

def sum_matrix_Elements(m): This statement defines the function sum_matrix_Elements(m) that takes a nested list (representing a matrix) as its input argument.

arra = np.array(m): This statement converts the input nested list 'm' into a NumPy 2D array named 'arra'.

element_sum = 0: This statement initializes a variable 'element_sum' to store the sum of the matrix elements, initially set to 0.

The nested for loops (for p in range(len(arra)): and for q in range(len(arra[p])):) iterate over each element in the 2D array 'arra'.

if arra[p][q] == 0 and p < len(arra)-1:: This statement checks if the current element 'arra[p][q]' is 0 and if it's not in the last row of the array.

arra[p+1][q] = 0: If the above condition is True, it sets the element below the current element to 0.

element_sum += arra[p][q]: This statement adds the current element value to the 'element_sum'.

return element_sum: This statement returns the calculated sum of the matrix elements.

Python-Numpy Code Editor:

Previous: NumPy program to convert numpy dtypes to native python types.
Next: NumPy program to find the missing data in a given array.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.