Python Tutorial
NumPy Trigonometric Functions
sin, cos, and tan take radians. deg2rad and rad2deg convert. hypot finds the hypotenuse.
sin, cos, tan
Convert degrees first if that is what you have.
import numpy as np
print(np.sin(np.pi / 2))
print(np.deg2rad(180))
print(np.rad2deg(np.pi))
print(np.hypot(3, 4))📘 Real-World Deep Dive
Knowing <strong>NumPy Ufunc Trig (NumPy)</strong> well is what turns NumPy from a curiosity into a daily tool — you'll reach for it in nearly every real project.
Real-Life Scenario
An end-to-end usage of NumPy Ufunc Trig that you'd actually see in a data pipeline or analytics notebook.
Real-Life Example
import numpy as np
x = np.array([0, np.pi/2, np.pi])
print(np.sin(x))
print(np.cos(x))Expected Output
(see source)Common mistakes
- NumPy uses 0-based, C-order indexing — the rightmost axis is the *fastest-varying* one. Mixing it with Fortran-order arrays is a common surprise.
np.array([[1,2],[3,4]], dtype=int)is fine, but a ragged Python list produces dtype=object and silently disables vectorisation.- In-place ops (
a *= 2) sometimes break views instead of returning a new array; usenp.multiply(a, 2, out=...)if explicitness matters. - Treating NumPy Ufunc Trig as a black box without reading the docs — the API has subtle defaults that bite when you scale.
🚀 Performance & Best Practices
- Vectorise: replace Python
forloops with ufuncs; you can expect 10–100× speedups. - Pre-allocate output arrays with
np.emptyinstead of growing them withnp.append. - Keep data in float32 unless you need float64 precision — half the memory, double the cache locality.
- When working with NumPy, prefer vectorised / batched operations over Python loops.
🧪 Try It Yourself
- Reproduce the snippet on a representative slice of your own data.
- Profile the snippet with
cProfileortimeitand find the single biggest improvement. - Generalise the snippet into a small, reusable function you can drop into future projects.