Функция minimum
Функция minimum производит поэлементное сравнение двух массивов или массива и скалярного значения. В результате возвращается новый массив, каждый элемент которого является минимальным из соответствующих элементов сравниваемых объектов. Функция особенно полезна при обработке данных, когда требуется найти минимальные значения между двумя наборами чисел, или при ограничении значений массива сверху.
Первым параметром x1 и вторым параметром x2 передаются массивы или скаляры для сравнения. Третьим параметром out можно указать массив для сохранения результата. Четвертым параметром where задается условие, определяющее, где вычислять минимум. Параметр dtype позволяет задать тип данных результирующего массива.
Синтаксис
np.minimum(x1, x2, out=None, where=True, dtype=None)
Пример
Давайте сравним два одномерных массива и получим поэлементный минимум:
import numpy as np
arr1 = np.array([10, 5, 8, 12, 3])
arr2 = np.array([7, 6, 9, 11, 4])
res = np.minimum(arr1, arr2)
print(res)
Результат выполнения кода:
[7 5 8 11 3]
Пример
Сравним массив со скалярным значением. В результате все элементы массива будут ограничены сверху переданным числом:
import numpy as np
arr = np.array([15, 22, 8, 30, 12])
res = np.minimum(arr, 20)
print(res)
Результат выполнения кода:
[15 20 8 20 12]
Пример
Функция работает и с многомерными массивами. Сравним две матрицы одинаковой формы:
import numpy as np
arr1 = np.array([[5, 12, 8], [20, 3, 15]])
arr2 = np.array([[9, 7, 11], [6, 18, 10]])
res = np.minimum(arr1, arr2)
print(res)
Результат выполнения кода:
[[5 7 8]
[6 3 10]]
Пример
Используем параметр where для выборочного вычисления минимума. Там, где условие ложно, значения остаются из первого массива:
import numpy as np
arr1 = np.array([5, 10, 15, 20, 25])
arr2 = np.array([12, 8, 18, 10, 30])
condition = np.array([True, False, True, False, True])
res = np.minimum(arr1, arr2, where=condition)
print(res)
Результат выполнения кода:
[5 10 15 20 25]
Пример
Сравним массивы разных типов данных. Результат будет приведен к более общему типу:
import numpy as np
arr1 = np.array([1.5, 2.7, 3.2], dtype=np.float32)
arr2 = np.array([2, 1, 4], dtype=np.int32)
res = np.minimum(arr1, arr2)
print(res)
print(res.dtype)
Результат выполнения кода:
[1.5 1. 3.2]
float32