In [1]:
import numpy as np

In [2]:
a = np.array([-100, -10, 0, 10, 100])
print(a)


[-100  -10    0   10  100]

In [3]:
print(np.sign(a))


[-1 -1  0  1  1]

In [4]:
print(type(np.sign(a)))


<class 'numpy.ndarray'>

In [5]:
print(np.sign(a).dtype)


int64

In [6]:
a_float = np.array([-1.23, 0.0, 1.23])
print(a_float)


[-1.23  0.    1.23]

In [7]:
print(np.sign(a_float))


[-1.  0.  1.]

In [8]:
print(np.sign(a_float).dtype)


float64

In [9]:
print(np.sign(100))


1

In [10]:
print(type(np.sign(100)))


<class 'numpy.int64'>

In [11]:
print(np.sign(-1.23))


-1.0

In [12]:
print(type(np.sign(-1.23)))


<class 'numpy.float64'>

In [13]:
a_special = np.array([0.0, -0.0, np.inf, -np.inf, np.nan])
print(a_special)


[  0.  -0.  inf -inf  nan]

In [14]:
print(np.sign(a_special))


[ 0.  0.  1. -1. nan]

In [15]:
print(np.sign(a_special).dtype)


float64

In [16]:
a_complex = np.array([[10 + 10j, -10 + 10j], [10 - 10j, -10 - 10j], [10, -10], [10j, -10j], [0, np.nan], [0j, np.nan * 1j]])
print(a_complex)


[[ 10.+10.j -10.+10.j]
 [ 10.-10.j -10.-10.j]
 [ 10. +0.j -10. +0.j]
 [  0.+10.j  -0.-10.j]
 [  0. +0.j  nan +0.j]
 [  0. +0.j  nan+nanj]]

In [17]:
print(np.sign(a_complex))


[[ 1.+0.j -1.+0.j]
 [ 1.+0.j -1.+0.j]
 [ 1.+0.j -1.+0.j]
 [ 1.+0.j -1.+0.j]
 [ 0.+0.j nan+0.j]
 [ 0.+0.j nan+0.j]]

In [18]:
print(a_complex.real)


[[ 10. -10.]
 [ 10. -10.]
 [ 10. -10.]
 [  0.  -0.]
 [  0.  nan]
 [  0.  nan]]

In [19]:
print(np.sign(a_complex.real))


[[ 1. -1.]
 [ 1. -1.]
 [ 1. -1.]
 [ 0.  0.]
 [ 0. nan]
 [ 0. nan]]

In [20]:
print(a_complex.imag)


[[ 10.  10.]
 [-10. -10.]
 [  0.   0.]
 [ 10. -10.]
 [  0.   0.]
 [  0.  nan]]

In [21]:
print(np.sign(a_complex.imag))


[[ 1.  1.]
 [-1. -1.]
 [ 0.  0.]
 [ 1. -1.]
 [ 0.  0.]
 [ 0. nan]]