In this article, we understand and implement `numpy.copysign()`

which is a NumPy function, as NumPy is an array processing package `numpy.copysign()`

used to change signs of two given arrays.

## What is numpy.copysign()?

The `numpy.copysign()`

function in NumPy is used to convert the sign of an input array x1 to that of another x2 element-wise.

### Syntax

```
numpy.copysign(x1, x2, /, out=None, *, where=True)
```

**Parameter**

Parameter | Description | Required/Optional |

x1:array_like | This represents the input array whose sign is to be changed. | Required |

x2:array_like | This represents the array whose sign is copied to x1. | Required |

out | This represents the location where the result is stored. | Optional |

where | This is the condition over which the input is being broadcast. The resulting array will be set to the `ufunc` result at a given location where this condition is true. | Optional |

**kwargs | This represents other keyword arguments. | Optional |

**Return Value**

The corresponding values of x1 with the sign of x2. This is a scalar if both x1 and x2 are scalars.

## Examples of using numpy.copysign()

Importing NumPy library ,declaring and printing the arrays x1 and x2.

```
import numpy as np
x1 = np.array([1, 2, 3])
x2 = np.array([-1, -2, 3])
print(x1)
print(x2)
```

```
[1 2 3]
[-1 -2 3]
```

Here we have imported numpy library as np. We created the arrays x1 and x2 using the numpy array() function.

### Example 1: Basic usage of numpy.copysign()

```
arr = np.copysign(x1, x2)
print(arr)
```

The output array `arr`

will contain all the elements of array x1 with their signs equal to the signs of their corresponding element in array x2.

**The output is calculated as:**

- x1[0] = 1 -> put sign of x2[0] => -1
- x1[1] = 2 -> put sign of x2[1] => -2
- x1[2] = 3 -> put sign of x2[2] => +3

**Output:**

```
[-1. -2. 3.]
```

### Example 2: putting x2 as an integer instead of an array

```
import numpy as np
x1 = [100, -2, 34, 11 , 78 , -90]
print(np.copysign(x1, -7))
```

Here we have only a single integer as x2, therefore every element of array x1 will get the negative sign from -7 and the output contains all negative elements.

**Output:**

```
[-100. -2. -34. -11. -78. -90.]
```

### Example 3: Storing the result

```
import numpy as np
x1 = [100, -2, 34, 11 , 78 , -90]
arr = np.array(np.zeros(6))
np.copysign(x1, -7 , out=arr)
print(arr)
```

`np.zeros(i)`

is used to return an array of `i`

zeros. Here we have declared an np array with a dimension equal to that of x1. to store the result we get from `np.copysign()`

using the `out`

parameter. The output prints the array storing the result after copysign function is executed.

**Output:**

```
[-100. -2. -34. -11. -78. -90.]
```

## Conclusion

We have understood and implemented the `numpy.copysign()`

function directly and also after storing the result in a different NumPy array using `out`

parameter. `numpy.copysign()`

is used to convert the sign of an input array x1 to that of another x2 element-wise.

## Reference

https://numpy.org/doc/stable/reference/generated/numpy.copysign.html