numpy.copysign

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

Функция copysign() изменяет знак элементов из массива x1 на знак элементов из массива x2 (при условии, что форма массивов одинакова). Если x2 является одним числом, то все элементы из x будут иметь такой же знак, как и у x2.

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

Примеры

>>> import numpy as np
>>> 
>>> np.copysign(10, -1)
-10.0
>>> 
>>> np.copysign(-10, 1)
10.0
>>> 
>>> np.copysign(-10, -1)
-10.0
>>> 
>>> x1 = np.array([np.inf, np.e, np.pi])
>>> x2 = -1
>>> 
>>> np.copysign(x1, x2)
array([       -inf, -2.71828183, -3.14159265])
>>> 
>>> #  Функция неприменима к комплексным числам:
>>> x1 = np.array([1 + 1j, -1 - 1j])
>>> 
>>> np.copysign(x1, x2)
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: ufunc 'copysign' not supported for the input 
types, and the inputs could not be safely coerced to any
supported types according to the casting rule ''safe''