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.]]