oadcast to. If not provided or None, a freshly-allocated array is returned. A tuple (possible only as a keyword argument) must have length equal to the number of outputs. where : array_like, optional This condition is broadcast over the input. At locations where the condition is True, the `out` array will be set to the ufunc result. Elsewhere, the `out` array will retain its original value. Note that if an uninitialized `out` array is created via the default ``out=None``, locations within it where the condition is False will remain uninitialized. **kwargs For other keyword-only arguments, see the :ref:`ufunc docs `. Returns ------- y : ndarray The sign of `x`. This is a scalar if `x` is a scalar. See Also -------- signbit copysign Notes ----- There is more than one definition of sign in common use for complex numbers. The definition used here, :math:`x/|x|`, is the more common and useful one, but is different from the one used in numpy prior to version 2.0, :math:`x/\sqrt{x*x}`, which is equivalent to ``sign(x.real) + 0j if x.real != 0 else sign(x.imag) + 0j``. Examples -------- >>> import numpy as np >>> np.sign([-5., 4.5]) array([-1., 1.]) >>> np.sign(0) 0 >>> np.sign([3-4j, 8j]) array([0.6-0.8j, 0. +1.j ])