6️⃣🧮 NumPy ufunc (Universal Functions) – Perform Fast Vectorized Computation
🧲 Introduction – Why Learn NumPy ufunc?
NumPy’s ufuncs (universal functions) are fast, element-wise operations built in C and optimized for performance. Whether you’re working on arrays, matrices, or scientific datasets, ufuncs allow seamless arithmetic, logical, trigonometric, and set operations without writing slow loops.
🎯 In this guide, you’ll learn:
- What ufuncs are and how to use them efficiently
- How to create custom ufuncs with
frompyfunc
- How to apply vectorized math like sum, diff, log, trig, and rounding
- Use cases of ufuncs in data processing and scientific computing
📘 Topics Covered
🧩 Topic | 📄 Description |
---|---|
🔍 NumPy ufunc Intro | What are universal functions and why use them |
🛠️ NumPy ufunc Create Function | Creating custom ufuncs using frompyfunc() |
➕ NumPy ufunc Simple Arithmetic | Element-wise operations: add , subtract , etc. |
🔁 NumPy ufunc Rounding Decimals | Rounding: around , fix , floor , ceil |
📊 NumPy ufunc Logs | Logarithmic functions like log , log2 , log10 |
➕ NumPy ufunc Summations | sum , cumsum , axis-based operations |
✖️ NumPy ufunc Products | prod , cumprod across arrays |
➖ NumPy ufunc Differences | diff() for adjacent differences |
🔗 NumPy ufunc Finding LCM | Element-wise LCM calculation |
🔗 NumPy ufunc Finding GCD | Element-wise GCD calculation |
🔺 NumPy ufunc Trigonometric | sin , cos , tan and angle conversions |
🔻 NumPy ufunc Hyperbolic | sinh , cosh , tanh etc. |
🔢 NumPy ufunc Set Operations | unique , intersect1d , union1d , etc. |
🔍 NumPy ufunc Intro
Universal functions (ufunc
) operate element-wise on arrays, enabling faster, more efficient code compared to loops.
import numpy as np
arr = np.array([1, 2, 3])
print(np.add(arr, 5)) # Output: [6 7 8]
🛠️ Create Custom ufunc
Use np.frompyfunc()
to turn any Python function into a ufunc.
def custom_add(x, y):
return x + y
ufunc_add = np.frompyfunc(custom_add, 2, 1)
print(ufunc_add([1, 2], [3, 4])) # Output: [4 6]
➕ Simple Arithmetic
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.add(a, b))
print(np.subtract(a, b))
print(np.multiply(a, b))
print(np.divide(b, a))
🔁 Rounding Decimals
x = np.array([1.7, 2.5, -3.2])
print(np.around(x)) # Nearest integer
print(np.floor(x)) # Round down
print(np.ceil(x)) # Round up
📊 Logarithmic Functions
x = np.array([1, 2, 10, 100])
print(np.log(x)) # Natural log
print(np.log2(x)) # Base 2 log
print(np.log10(x)) # Base 10 log
➕ Summations
x = np.array([1, 2, 3, 4])
print(np.sum(x)) # 10
print(np.cumsum(x)) # [1 3 6 10]
✖️ Products
x = np.array([1, 2, 3, 4])
print(np.prod(x)) # 24
print(np.cumprod(x)) # [1 2 6 24]
➖ Differences
x = np.array([10, 15, 25, 35])
print(np.diff(x)) # [5 10 10]
🔗 Finding LCM
print(np.lcm.reduce([12, 18])) # 36
🔗 Finding GCD
print(np.gcd.reduce([12, 18])) # 6
🔺 Trigonometric Functions
x = np.array([0, 30, 60, 90])
radians = np.deg2rad(x)
print(np.sin(radians))
print(np.cos(radians))
print(np.tan(radians))
🔻 Hyperbolic Functions
x = np.array([0, 1, 2])
print(np.sinh(x))
print(np.cosh(x))
print(np.tanh(x))
🔢 Set Operations
a = np.array([1, 2, 3, 4])
b = np.array([3, 4, 5, 6])
print(np.union1d(a, b)) # [1 2 3 4 5 6]
print(np.intersect1d(a, b)) # [3 4]
print(np.setdiff1d(a, b)) # [1 2]
print(np.setxor1d(a, b)) # [1 2 5 6]
📌 Summary – Recap & Next Steps
NumPy ufuncs are essential tools for high-performance numerical operations. With built-in support for element-wise math, logical processing, and custom functions, they replace slow loops and speed up workflows significantly.
🔍 Key Takeaways:
ufuncs
operate element-wise on NumPy arrays with C-speed performance.- Functions like
add
,log
,diff
,sin
, andgcd
are built-in and optimized. - Set operations and trigonometric/hyperbolic tools broaden their usage in science and engineering.
⚙️ Real-World Relevance:
From scientific simulations to ML preprocessing and sensor data analysis, NumPy ufuncs help streamline operations in a fraction of the time.
❓ FAQ – NumPy ufunc Basics
❓ What is a ufunc in NumPy?
✅ A ufunc is a fast element-wise function written in C that applies operations to arrays.
❓ How is ufunc
different from normal Python functions?
✅ Ufuncs avoid explicit loops and use vectorized operations, making them significantly faster.
❓ Can I create custom ufuncs?
✅ Yes, using np.frompyfunc(func, nin, nout)
.
❓ What is the use of np.diff()
?
✅ It calculates the difference between consecutive elements in an array.
❓ Are ufuncs usable on multi-dimensional arrays?
✅ Yes, all ufuncs support broadcasting and N-dimensional arrays.
Share Now :