numpy.sign

numpy.sign(x, *ufunc_args) = <ufunc 'sign'>

Функция sign() является указателем на знак числа.

Если x вещественное, то возвращаемое значение зависит от x следующим образом:

$$\operatorname{sign} (x)={\begin{cases}\ \ 1,&x>0\\\ \ 0,&x=0\\-1,&x<0\end{cases}}$$

Если x комплексное, то значение sign(x) определяется как:

$$\operatorname{sign} (x)={\begin{cases}\ \ sign(x.real)+0j, &x.real\neq 0\\\ \ sign(x.imag)+0j,&x.real=0\end{cases}}$$

Где x.real - действительная, а x.imag - мнимая части комплексного числа.

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

Замечание

Если действительная или (и) мнимая части комплексного числа равны np.nan то будет возвращено (nan + 0j).


Примеры

>>> import numpy as np
>>> 
>>> np.sign([-7, -6.25, 0, 5, 5.25])
array([-1., -1.,  0.,  1.,  1.])
>>> 
>>> np.sign([-np.inf, -0, np.inf, np.nan])
array([-1.,  0.,  1., nan])
>>> np.sign([1 + 1j, 1 - 1j, -1 + 1j, -1 - 1j])
array([ 1.+0.j,  1.+0.j, -1.+0.j, -1.+0.j])
>>> 
>>> np.sign([0 + 1j, 0 - 1j])
array([ 1.+0.j, -1.+0.j])
>>> 
>>> 
>>> z = np.complex(np.nan, 1)
>>> np.sign(z)
(nan+0j)
>>> 
>>> z = np.complex(1, np.nan)
>>> np.sign(z)
(nan+0j)
>>>
>>> z = np.complex(np.nan, np.nan)
>>> np.sign(z)
(nan+0j)