Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

NumPy arctanh() Function



The NumPy arctanh() function computes the inverse hyperbolic tangent (area hyperbolic tangent) of each element in the input array. The inverse hyperbolic tangent is also known as atanh or tanh-1 and is mathematically defined as −

arctanh(x) = 0.5 * ln((1 + x) / (1 - x))

The function is the inverse of the hyperbolic tangent function (tanh()) and returns values in radians. The arctanh() is a multivalued function, for each real number x there are infinitely many numbers of complex number z such that tanh(z) = x. The convention is to return the z whose imaginary part lies in [-pi/2, pi/2].

For real-valued input data types, arctanh always returns real output. For each value that cannot be expressed as a real number or infinity, it yields nan and sets the invalid floating point error flag.

For complex-valued input, arctanh() is a complex analytical function that ranges between [-1, -infinite] and [1, infinite] and is continuous from above on the former and from below on the latter.

Syntax

Following is the syntax of the NumPy arctanh() function −

numpy.arctanh(x, out=None, where=True, casting='same_kind', order='K', dtype=None, subok=True)

Parameters

Following are the parameters of the NumPy arctanh() function −

  • x: Input array, it can be a NumPy array, list, or scalar value. The elements must satisfy -1 < x < 1 for real results.
  • out (optional): Alternate output array to place the result. It must have the same shape as the expected output.
  • where (optional): A Boolean array. If True, compute the result; otherwise, it leaves the corresponding output elements unchanged.
  • dtype (optional): Specifies the data type of the result.
  • casting (optional): Ensures equivalent type conversion occurs. For example, converting from `float32` to `float64` is allowed, but converting from `float64` to `int32` is not.
  • subok (optional): Determines whether to subclass the output array if the data type is changed or to return a base-class array.
  • order (optional): Specifies the memory layout of the array −
  • 'C': C-style row-major order.
  • 'F': Fortran-style column-major order.
  • 'A': 'F' if the input is Fortran contiguous, 'C' otherwise.
  • 'K': This is the default value. Keeps the order as close as possible to the input.

Return Values

This function returns a NumPy array with the inverse hyperbolic tangent of the input values. If an input value is outside the range it results nan.

Example

Following is a basic example to compute the inverse hyperbolic tangent of each element in an array using the NumPy arctanh() function −

import numpy as np
# input array
x = np.array([-0.5, 0, 0.5])
# applying arctanh
result = np.arctanh(x)
print("Arctanh Result:", result)

Output

Following is the output of the above code −

Arctanh Result: [-0.54930614  0.          0.54930614]

Example: Scalar Input as an Argument

The arctanh() function also accepts a scalar input. In the following example, we have passed 0.5 as an argument to the arctanh() function −

import numpy as np
# scalar input
scalar = 0.5
# applying arctanh
result = np.arctanh(scalar)
print("Arctanh Result for Scalar Input:", result)

Output

Following is the output of the above code −

Arctanh Result for Scalar Input: 0.5493061443340548

Example: Multi-dimensional Array

The arctanh() function operates on multi-dimensional arrays. In the following example, we have created a 2X2 NumPy array, where each element computes its inverse hyperbolic tangent −

import numpy as np
# 2D array
x = np.array([[-0.5, 0], [0.5, 0.8]])
result = np.arctanh(x)
print("Arctanh Result for 2D Array:\n", result)

Output

Following is the output of the above code −

Arctanh Result for 2D Array:
 [[-0.54930614  0.        ]
  [ 0.54930614  1.09861229]]

Example: Plotting 'arctanh()' Function

In the following example, we have plotted the behaviour of the arctanh() function. To achieve this, we need to import the numpy and matplotlib.pyplot modules −

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-0.99, 0.99, 100)  # input range (-1 < x < 1)
y = np.arctanh(x)  # applying arctanh
plt.plot(x, y)
plt.title("Inverse Hyperbolic Tangent Function")
plt.xlabel("Input")
plt.ylabel("arctanh(x)")
plt.grid()
plt.show()
numpy_trigonometric_functions.htm
Advertisements