'The Absolute Value of a Complex Number with Numpy

I have the following script in Python. I am calculating the Fourier Transform of an array. When I want to plot the results (Fourier transform) I am using the absolute value of that calculation. However, I do not know how the absolute value of complex numbers is being produced. Does anyone know how it calculates? I need this to reproduce in Java.

import numpy as np
import matplotlib.pyplot as plt
from numpy import fft

inp = [1,2,3,4]

res = fft.fft(inp)

print(res[1]) # returns (-2+2j) complex number

print(np.abs(res[1])) # returns 2.8284271247461903


Solution 1:[1]

np.abs gives magnitude of complex number i.e. sqrt(a^2 + b^2) in your case it's sqrt(8).

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

Solution 2:[2]

numpy.absolute(arr, out = None, ufunc ‘absolute’) : This mathematical function helps user to calculate absolute value of each element.

For a complex number a+ib, the absolute value is sqrt(a^2 + b^2).

Solution 3:[3]

For complex valued pairs, a+ib, you can consider using the java Math static method hypot:

Math.hypot(a, b)

The method is an implementation of the Pythagorean theorem, sqrt(a*a + b*b) but additionally provides underflow and overflow protection.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ankush
Solution 2 Rohit Dubey
Solution 3 ctpenrose