The numpy.sign()
method determines the sign of each element in an array.
Example
import numpy as np
# create an array
array1 = np.array([9, -3, -8, 0])
# determine the sign of each element in the array
result = np.sign(array1)
print(result)
# Output:[1 -1 -1 0]
sign() Syntax
The syntax of the numpy.sign()
method is:
numpy.sign(x, out = None, where = True, casting = 'same_kind', dtype = None)
sign() Arguments
The numpy.sign()
method takes the following arguments:
x
- the array whose elements' signs are to be determinedout
(optional) - the output array where the result will be storedwhere
(optional) - a boolean array or condition specifying which elements should be updatedcasting
(optional) - casting behavior when converting data typesdtype
(optional) - the data type of the returned output
sign() Return Value
The numpy.sign()
method returns an array with the same shape as the input, containing the sign of each array element.
Example 1: Determine the Sign of Each Array Element
import numpy as np
# create an input array
array1 = np.array([-2, 5, 0, -7])
# determine the sign of each element in the array
result = np.sign(array1)
print(result)
Output
[-1 1 0 -1]
In the above example, we saw how we can use numpy.sign()
to determine the sign of each element in an array.
The resulting array contains -1 for negative values, 0 for zero, and 1 for positive values.
Example 2: Use of out and where in sign()
import numpy as np
array1 = np.array([[-2, 0, 3], [5, -4, 0]])
# create an output array with the same shape as x
output = np.zeros_like(array1)
# compute the sign of each element
# where the element is non-zero,
# and store the result in the output array
np.sign(array1, where = array1 != 0, out = output)
print(output)
Output
[[-1 0 1] [ 1 -1 0]]
Notice the following code in the program above:
np.sign(array1, where = array1 != 0, out = output)
This code computes the sign of each element in array1, but only where the element is non-zero (based on the where condition).
And the result is stored in the output array.
Example 3: Using Optional casting Argument in sign()
The casting
argument specifies the casting behavior when converting data types.
The casting can be:
'no'
- data types should not be cast at all'equiv'
- only byte-order changes are allowed'safe'
- only casts that can preserve the precision of the values are allowed'same_kind'
- only safe casts or casts within a kind are allowed'unsafe'
- any data conversions may be done
Let's look at an example.
import numpy as np
# array of floating-point numbers
array1 = np.array([1, -2, 0, 4, -5], dtype = np.float32)
# no casting is allowed
# same data type as array1 is maintained
array2 = np.sign(array1, casting = 'no')
# casting is allowed to equivalent
# data types (floating-point numbers)
array3 = np.sign(array1, casting = 'equiv')
# casting is allowed to safe data types that
# preserve precision (floating-point numbers)
array4 = np.sign(array1, casting = 'safe')
# casting is allowed to data types of
# the same kind (floating-point numbers)
array5 = np.sign(array1, casting = 'same_kind')
# casting is allowed to any data type
# without checks (signed integers)
array6 = np.sign(array1, casting = 'unsafe')
print("Array with 'no' casting:", array2)
print("Array with 'equiv' casting:", array3)
print("Array with 'safe' casting:", array4)
print("Array with 'same_kind' casting:", array5)
print("Array with 'unsafe' casting:", array6)
Output
Array with 'no' casting: [ 1. -1. 0. 1. -1.] Array with 'equiv' casting: [ 1. -1. 0. 1. -1.] Array with 'safe' casting: [ 1. -1. 0. 1. -1.] Array with 'same_kind' casting: [ 1. -1. 0. 1. -1.] Array with 'unsafe' casting: [ 1. -1. 0. 1. -1.]
Example 4: Use of dtype Argument in sign()
import numpy as np
# original array of integers
array1 = np.array([1, -2, 0, 4, -5])
# compute the sign and specify the data type as float32
result = np.sign(array1, dtype = np.float32)
print(result)
Output
[ 1. -1. 0. 1. -1.]
Here, the original array array1 contains integers, but by specifying dtype = np.float32
, the np.sign()
method casts the result to np.float32
.