Compare two arrays and return the element-wise maximum ignoring NaNs in Numpy


To compare two arrays and return the element-wise maximum ignoring NaNs, use the numpy.fmax() method in Python Numpy. Return value is either True or False.

Compare two arrays and returns a new array containing the element-wise maxima. If one of the elements being compared is a NaN, then the non-nan element is returned. If both elements are NaNs then the first is returned. The latter distinction is important for complex NaNs, which are defined as at least one of the real or imaginary parts being a NaN. The net effect is that NaNs are ignored when possible.

Steps

At first, import the required library −

import numpy as np

Creating two 2D numpy array using the array() method. We have inserted elements with some NaN values −

arr1 = np.array([[6, 9, np.NaN],[25, 11, 21]])
arr2 = np.array([[8, np.NaN, np.NaN],[22, 19, 26]])

Display the arrays −

print("Array 1...
", arr1) print("
Array 2...
", arr2)

Get the type of the arrays −

print("
Our Array 1 type...
", arr1.dtype) print("
Our Array 2 type...
", arr2.dtype)

Get the dimensions of the Arrays −

print("
Our Array 1 Dimensions...
",arr1.ndim) print("
Our Array 2 Dimensions...
",arr2.ndim)

Get the shape of the Arrays −

print("
Our Array 1 Shape...
",arr1.shape) print("
Our Array 2 Shape...
",arr2.shape)

To compare two arrays and return the element-wise maximum ignoring NaNs, use the numpy.fmax() method in Python Numpy. Return value is either True or False −

print("
Result (maximum ignoring NaNs)...
",np.fmax(arr1, arr2))

Example

import numpy as np

# Creating two 2D numpy array using the array() method
# We have inserted elements with some NaN values
arr1 = np.array([[6, 9, np.NaN],[25, 11, 21]])
arr2 = np.array([[8, np.NaN, np.NaN],[22, 19, 26]])

# Display the arrays
print("Array 1...
", arr1) print("
Array 2...
", arr2) # Get the type of the arrays print("
Our Array 1 type...
", arr1.dtype) print("
Our Array 2 type...
", arr2.dtype) # Get the dimensions of the Arrays print("
Our Array 1 Dimensions...
",arr1.ndim) print("
Our Array 2 Dimensions...
",arr2.ndim) # Get the shape of the Arrays print("
Our Array 1 Shape...
",arr1.shape) print("
Our Array 2 Shape...
",arr2.shape) # To compare two arrays and return the element-wise maximum ignoring NaNs, use the numpy.fmax() method in Python Numpy # Return value is either True or False print("
Result (maximum ignoring NaNs)...
",np.fmax(arr1, arr2))

Output

Array 1...
[[ 6. 9. nan]
[25. 11. 21.]]

Array 2...
[[ 8. nan nan]
[22. 19. 26.]]

Our Array 1 type...
float64

Our Array 2 type...
float64

Our Array 1 Dimensions...
2

Our Array 2 Dimensions...
2

Our Array 1 Shape...
(2, 3)

Our Array 2 Shape...
(2, 3)

Result (maximum ignoring NaNs)...
[[ 8. 9. nan]
[25. 19. 26.]]

Updated on: 07-Feb-2022

312 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements