numpy.real_if_close

numpy.real_if_close(a, tol=100) [source]

If complex input returns a real array if complex parts are close to zero.

“Close to zero” is defined as tol * (machine epsilon of the type for a).

Parameters
aarray_like

Input array.

tolfloat

Tolerance in machine epsilons for the complex part of the elements in the array.

Returns
outndarray

If a is real, the type of a is used for the output. If a has complex elements, the returned type is float.

See also

real, imag, angle

Notes

Machine epsilon varies from machine to machine and between data types but Python floats on most platforms have a machine epsilon equal to 2.2204460492503131e-16. You can use ‘np.finfo(float).eps’ to print out the machine epsilon for floats.

Examples

>>> np.finfo(float).eps
2.2204460492503131e-16 # may vary
>>> np.real_if_close([2.1 + 4e-14j], tol=1000)
array([2.1])
>>> np.real_if_close([2.1 + 4e-13j], tol=1000)
array([2.1+4.e-13j])

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.real_if_close.html