numpy.heaviside

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

Функция heaviside() - ступенчатая функция Хевисайда.

В данном случае, возвращаемое значение определяется следующими условиями:

$$\operatorname{heaviside} (x1, x2)=\begin{cases} 0, & \text{ if } x<0 \\ x2, & \text{ if } x=0 \\ 1, & \text{ if } x>0 \end{cases}$$

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

Замечание

Если формы массивов x1 и x2 совместимы то выполняется механизм транслирования.

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


Примеры

>>> import numpy as np
>>> 
>>> np.heaviside([-1, 0, 1], 3.14)
array([0.  , 3.14, 1.  ])
>>> 
>>> np.heaviside([0, 0, 0], [1, 2, 3])
array([1., 2., 3.])
>>> 
>>> x1 = np.random.randint(-2, 2, size = (5, 5))
>>> x1
array([[-2, -2, -2, -1,  1],
       [ 0,  1, -2,  0,  1],
       [-2,  1,  0,  0, -2],
       [-2,  0,  1, -1,  1],
       [-1,  0, -2,  0,  1]])
>>> 
>>> #  Выполняется механизм транслирования массивов:
... x2 = np.arange(10, 60, 10)
>>> x2
array([10, 20, 30, 40, 50])
>>> 
>>> np.heaviside(x1, x2)
array([[ 0.,  0.,  0.,  0.,  1.],
       [10.,  1.,  0., 40.,  1.],
       [ 0.,  1., 30., 40.,  0.],
       [ 0., 20.,  1.,  0.,  1.],
       [ 0., 20.,  0., 40.,  1.]])
>>> 
>>> 
>>> x2.resize(5, 1)
>>> x2
array([[10],
       [20],
       [30],
       [40],
       [50]])
>>> 
>>> np.heaviside(x1, x2)
array([[ 0.,  0.,  0.,  0.,  1.],
       [20.,  1.,  0., 20.,  1.],
       [ 0.,  1., 30., 30.,  0.],
       [ 0., 40.,  1.,  0.,  1.],
       [ 0., 50.,  0., 50.,  1.]])