numpy.fmin

numpy.fmin(x1, x2, *ufunc_args) = <ufunc 'fmin'>

Функция fmin() возвращает наименьшие значения поэлементного сравнения значений массивов в виде чисел с плавающей точкой.

Параметры:
x1, x2 - число, массив или подобный массиву объект
Сравниваемые значения. Если это массив или последовательности, то они должны быть либо одинаковой, либо совместимой формы.
*ufunc_args - аргументы универсальной функции
Аргументы, позволяющие настроить и оптимизировать работу функции (подробнее см. универсальные функции).
Возвращает:
результат - массив NumPy или вещественное число
Массив чисел каждое из которых является наименьшим в поэлемнтном сравнении x1 и x2. Возвращает число, если x1 и x2 являются числами.

Замечание

Если одно из сравниваемых значений равно nan, то результатом будет отличное от nan значение. Если оба элемента равны nan, то возвращается первый из них - это правило очень важно при сравнении комплексных чисел, у которых действительная или мнимая часть может быть равна nan, например:

>>> import numpy as np
>>> 
>>> np.complex(np.nan, 3)
(nan+3j)
>>> 
>>> np.complex(3, np.nan)
(3+nanj)
>>>
>>> np.fmin(np.complex(np.nan, 3), np.complex(3, np.nan))
(nan+3j)

Главное отличие от numpy.minimum() заключается в игнорировании значений nan, когда это возможно.

Данная функция эквивалентна numpy.where(x1 <= x2, x1, x2), но numpy.where() медленнее, не поддерживает значения nan и транслирование.

Доступна в NumPy с версии 1.3.0.

Смотрите так же: maximum, minimum, fmax

Примеры

>>> import numpy as np
>>> 
np.fmin([np.nan, np.nan, np.inf, np.inf, np.nan],
        [1,      np.inf, 1,     -np.inf, np.nan])
array([  1.,  inf,   1., -inf,  nan])
>>> 
>>> np.fmin(3, 7)
3
>>> 
>>> np.fmin([3, 13, 23], [7, 5, 41])
array([ 3,  5, 23])
>>> 
>>> np.fmin([1e-10, 1e-300], [9e-10, 1e-301])
array([1.e-010, 1.e-301])
>>> 
>>> #  Возможно транслирование массивов:
... x1 = np.random.randint(-10, 10, size = (5, 5))
>>> x1
array([[  7,   1,   4,  -1,   0],
       [ -8, -10,   3,   2,   8],
       [  2,  -1,   3,  -1,   6],
       [  0,   3,  -1,   2,  -4],
       [ -2,   0,  -1,   0,   0]])
>>> 
>>> x2 = np.random.randint(-5, 0, size = (5,))
>>> x2
array([-1, -3, -1, -4, -1])
>>> 
>>> np.fmin(x1, x2)
array([[ -1,  -3,  -1,  -4,  -1],
       [ -8, -10,  -1,  -4,  -1],
       [ -1,  -3,  -1,  -4,  -1],
       [ -1,  -3,  -1,  -4,  -4],
       [ -2,  -3,  -1,  -4,  -1]])
>>> 
>>> x2 = np.random.randint(-5, 0, size = (5, 1))
>>> x2
array([[-5],
       [-2],
       [-3],
       [-3],
       [-2]])
>>> 
>>> np.fmin(x1, x2)
array([[ -5,  -5,  -5,  -5,  -5],
       [ -8, -10,  -2,  -2,  -2],
       [ -3,  -3,  -3,  -3,  -3],
       [ -3,  -3,  -3,  -3,  -4],
       [ -2,  -2,  -2,  -2,  -2]])
>>> 
>>> 
>>> x2 = -3
>>> 
>>> np.fmin(x1, x2)
array([[ -3,  -3,  -3,  -3,  -3],
       [ -8, -10,  -3,  -3,  -3],
       [ -3,  -3,  -3,  -3,  -3],
       [ -3,  -3,  -3,  -3,  -4],
       [ -3,  -3,  -3,  -3,  -3]])