NumPy: Utilizing minimum() and fmin() functions (4 examples)

Updated: February 26, 2024 By: Guest Contributor Post a comment

Introduction

NumPy, short for Numerical Python, is a fundamental package for scientific computing in Python. Among its vast array of functionalities, the minimum() and fmin() functions stand out for element-wise comparison. This tutorial aims to explain these functions through five examples, ranging from basic to advanced usage. By the end, you’ll have a clear understanding of how to leverage these functions in your NumPy-powered projects.

What do minimum() and fmin() do?

The minimum() function compares two arrays and returns a new array containing the element-wise minimums. Similarly, the fmin() function does the same but treats NaN (not a number) as a very large value, thus ignoring it in the comparison. Let’s dive into examples to see these functions in action.

Example 1: Basic Usage of minimum()

import numpy as np

a = np.array([2, 3, 4, 5])
b = np.array([1, 5, 2, 7])
result = np.minimum(a, b)

print(result)
# Output: [1 3 2 5]

This example showcases the straightforward use of minimum() for comparing two arrays, demonstrating how the function returns the smaller value from each paired element.

Example 2: Understanding fmin()

import numpy as np

a = np.array([np.nan, 3, np.nan, 5])
b = np.array([1, np.nan, 2, 7])
result = np.fmin(a, b)

print(result)
# Output: [ 1.  3.  2.  5.]

In this example, the use of fmin() demonstrates its ability to ignore NaN values during comparisons, offering a practical solution for datasets that may contain missing values.

Example 3: Advanced Application – Combining with Statistical Functions

import numpy as np

matrix = np.random.rand(3, 4) * 10
min_per_row = np.fmin.reduce(matrix, axis=1)
max_per_column = np.minimum.reduce(matrix, axis=0)

print(f'Minimum per row: {min_per_row}')
print(f'Maximum per column: {max_per_column}')
# Outputs vary due to random numbers

This advanced example combines minimum() and fmin() with statistical functions, showcasing their usefulness in reducing dimensions based on minimum or maximum computations.

Example 4: Using minimum() and fmin() with Broadcasting

import numpy as np

a = np.array([0, 10, 20, 30])
b = np.arange(4)

result = np.minimum(a[:, np.newaxis], b)

print(result)
# Output:
# [[ 0  0  0  0]
#  [ 0  1  2  3]
#  [ 0  0  1  2]
#  [ 0  0  0  1]]

This example demonstrates the power of NumPy’s broadcasting feature when used in conjunction with the minimum() or fmin() functions, allowing for complex array comparisons without explicit iteration.

Performance Considerations

When working with large datasets, the performance of minimum() and fmin() can become critical. Thankfully, both functions are highly optimized in NumPy, offering excellent speed for element-wise comparisons. Understand that leveraging these functions correctly can significantly enhance your data processing workflows.

Conclusion

In this tutorial, we explored the minimum() and fmin() functions of NumPy through practical examples. These powerful tools perform element-wise comparisons with efficiency and ease, proving invaluable in scientific computing and data analysis projects. Understanding their usage and advantages is key to unlocking more advanced numerical computing techniques in Python.