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