Quick answer: np.angle returns the phase of a complex number or array from the positive real axis, in radians by default or degrees when deg=True. It follows an arctan2-style quadrant convention, so signs and the zero-magnitude case need explicit tests.

numpy.angle() returns the phase angle of complex numbers. It can return angles in radians or degrees.
The official NumPy documentation covers numpy.angle(), numpy.arctan2(), and numpy.absolute().
Use angle() when values are complex and you need their direction in the complex plane. The magnitude and the angle are different parts of the same complex value. NumPy angle returns radians by default; Convert Radians to Degrees in Python covers scalar and array conversion to degrees and the math.degrees alternative.
By default, NumPy returns radians. Pass deg=True when degrees are easier to read or report.
For a complex number a + bj, the angle is based on the real part and imaginary part. Conceptually, it is similar to using arctan2(imag, real). For Cartesian x and y components rather than complex numbers, NumPy arctan2() Angle Guide uses arctan2 to preserve the correct quadrant.
Real positive numbers have angle zero. Real negative numbers have angle pi radians, or 180 degrees.
That behavior is useful when mixed real and complex arrays appear in the same workflow.
It also helps explain why signs matter even when imaginary parts are zero.
The result is an array when the input is an array. It follows the same shape as the input values.
Use absolute() when you need magnitude. Use angle() when you need phase.
For signal processing, FFT output, and polar-style calculations, keeping magnitude and phase separate makes the code easier to review. When the next operation needs complex conjugation rather than phase extraction, NumPy conjugate(): Complex Array Guide covers scalar and array behavior.
A practical review step is to label the unit of every phase array. Mixing radians and degrees can produce plausible-looking numbers that are still wrong for later trigonometric functions.
When values come from complex transforms, inspect a small sample of magnitude and phase together. That often makes outliers or unexpected signs easier to understand.
Find The Angle Of One Complex Number
Pass a complex value to get its phase in radians.
import numpy as np
value = 1 + 1j
phase = np.angle(value)
print(phase)
The result is measured in radians.
The complex value has equal real and imaginary parts, so the angle is one quarter of a right angle.
This is the simplest use of np.angle().
Use it for individual complex values or quick checks.
For code that processes many values, the same function works on arrays without needing a loop.
Return Degrees
Use deg=True to return degrees.
import numpy as np
value = 1 + 1j
phase = np.angle(value, deg=True)
print(phase)
This prints an angle in degrees instead of radians.
Degrees are often easier to read in explanations and reports.
Radians are usually better for mathematical functions and numeric workflows.
Choose the unit that matches the next step in the calculation.
If the next step calls NumPy trigonometric functions, radians are usually expected. If the next step is a table or chart label, degrees may be clearer.

Use angle With Arrays
angle() works element by element on arrays.
import numpy as np
values = np.array([1 + 0j, 1 + 1j, -1 + 0j])
phases = np.angle(values, deg=True)
print(phases)
The output has one angle for each complex input value.
This is useful for batches of complex values, FFT results, or generated complex arrays.
The shape of the output follows the input shape.
That makes it straightforward to pair phases with the original data.
This shape preservation is useful when phase values need to be plotted, filtered, or combined with magnitudes from the same input.
Compare angle And absolute
absolute() returns magnitude. angle() returns direction.
import numpy as np
value = 3 + 4j
magnitude = np.absolute(value)
phase = np.angle(value, deg=True)
print(magnitude)
print(phase)
The magnitude is the distance from zero.
The phase is the direction from the positive real axis.
Both values describe the same complex number in different ways.
Use both when converting complex output into magnitude-phase form.
This separation is common after FFT operations: magnitude describes strength, while phase describes alignment or offset.

Compare angle And arctan2
For complex values, angle() is similar to arctan2(imag, real).
import numpy as np
value = -1 + 1j
phase_from_angle = np.angle(value)
phase_from_parts = np.arctan2(value.imag, value.real)
print(phase_from_angle)
print(phase_from_parts)
The two values match for this complex input.
Use angle() when you already have complex numbers.
Use arctan2() when real and imaginary components are stored separately.
This distinction keeps code clearer.
It also avoids manually splitting complex arrays when NumPy can read the real and imaginary parts directly.
Handle Real Inputs
Real numbers can also be passed to angle().
import numpy as np
values = np.array([2.0, -2.0, 0.0])
phases = np.angle(values)
print(phases)
Positive real values have phase zero.
Negative real values have phase pi.
Zero is handled consistently by NumPy, but in application code it is still worth deciding whether zero-magnitude values should be interpreted as meaningful directions.
In short, use np.angle() to get complex phase, set deg=True for degrees, use absolute() for magnitude, and use arctan2() when the real and imaginary parts are stored separately.
Read The Complex Plane
For a + bj, the real part is the horizontal coordinate and the imaginary part is the vertical coordinate. angle returns direction, while absolute returns magnitude; choose the function that matches the quantity you need.

Choose Radians Or Degrees
Radians are the default and work naturally with NumPy trigonometric functions. Pass deg=True for reports or interfaces that use degrees, and keep that choice explicit at the boundary.
Respect Quadrants
The sign of both the real and imaginary parts affects the phase. Using arctan of a simple ratio can lose quadrant information, while angle follows the arctan2 convention.

Check Real And Zero Values
Positive real values have phase zero and negative real values have pi radians under the usual convention. Zero magnitude can carry signed-zero behavior, so test it if phase output is used for a branch or comparison.
Preserve Array Shapes
For array input, angle returns the corresponding shape. Check dtype and shape when combining phase with magnitude, FFT output, or a downstream broadcast operation.
The NumPy angle reference defines radians, degrees, range, and arctan2 behavior. Related references include axes, array shape, and numeric tests.
For related phase calculations, compare axes, array shape, and numeric tests when handling complex values.
Frequently Asked Questions
What does NumPy angle return?
It returns the phase angle of a complex value or array, measured from the positive real axis.
Are NumPy angles radians by default?
Yes. Pass deg=True when the result should be reported in degrees.
How does angle handle real negative values?
A negative real value has a phase of pi radians, or 180 degrees, under the usual complex-plane convention.
How is angle related to arctan2?
NumPy uses the real and imaginary parts with an arctan2-style quadrant convention, so signs affect the returned phase.