NumPy Tutorial
Estimated reading: 4 minutes 45 views

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 IntroWhat are universal functions and why use them
🛠️ NumPy ufunc Create FunctionCreating custom ufuncs using frompyfunc()
➕ NumPy ufunc Simple ArithmeticElement-wise operations: add, subtract, etc.
🔁 NumPy ufunc Rounding DecimalsRounding: around, fix, floor, ceil
📊 NumPy ufunc LogsLogarithmic functions like log, log2, log10
➕ NumPy ufunc Summationssum, cumsum, axis-based operations
✖️ NumPy ufunc Productsprod, cumprod across arrays
➖ NumPy ufunc Differencesdiff() for adjacent differences
🔗 NumPy ufunc Finding LCMElement-wise LCM calculation
🔗 NumPy ufunc Finding GCDElement-wise GCD calculation
🔺 NumPy ufunc Trigonometricsin, cos, tan and angle conversions
🔻 NumPy ufunc Hyperbolicsinh, cosh, tanh etc.
🔢 NumPy ufunc Set Operationsunique, 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, and gcd 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 :

Leave a Reply

Your email address will not be published. Required fields are marked *

Share

6️⃣🧮 NumPy ufunc (Universal Functions)

Or Copy Link

CONTENTS
Scroll to Top