تعریف ufunc

تعریف Universal Functions (ufunc) در NumPy

در کتابخانه NumPy پایتون، Universal Functions یا ufunc به توابعی گفته می‌شود که عملیات عنصر به عنصر (element-wise) را روی آرایه‌های ndarray انجام می‌دهند. این توابع یکی از پایه‌ای‌ترین مفاهیم در محاسبات عددی با NumPy هستند.

ufuncها هسته اصلی محاسبات برداری در NumPy را تشکیل می‌دهند و عملکرد بسیار بهتری نسبت به حلقه‌های معمولی پایتون ارائه می‌کنند.

ویژگی‌های کلیدی ufuncها

  • پشتیبانی از پخش آرایه‌ها (broadcasting)
  • اجرای عملیات بر روی عناصر آرایه بدون نیاز به حلقه
  • پشتیبانی از کاهش (reduction) و تجمع (accumulation)
  • امکان استفاده از روش‌های خارجی (out parameter)
نوع ufunc توضیح مثال
یگانه (Unary) یک ورودی می‌گیرد و یک خروجی تولید می‌کند np.sqrt(), np.exp()
دوتایی (Binary) دو ورودی می‌گیرد و یک خروجی تولید می‌کند np.add(), np.multiply()

مزایای استفاده از ufuncها

استفاده از ufuncها در NumPy چندین مزیت مهم دارد:

  1. سرعت اجرای بالا: این توابع در سطح پایین بهینه‌سازی شده‌اند
  2. خوانایی کد: جایگزین مناسبی برای حلقه‌های پیچیده
  3. انعطاف‌پذیری: قابلیت کار با آرایه‌های چندبعدی
  4. پشتیبانی از انواع داده: کار با انواع عددی مختلف

برای یادگیری عمیق‌تر درباره ufuncها در NumPy، می‌توانید به این صفحه بروید و مثال‌های کاربردی بیشتری را مشاهده کنید.


نمونه کد عملی

مثال ساده از استفاده از ufunc برای محاسبه جذر عناصر آرایه:

import numpy as np
arr = np.array([1, 4, 9, 16])
result = np.sqrt(arr)  # ufunc جذر
print(result)  # خروجی: [1. 2. 3. 4.]

همانطور که مشاهده می‌کنید، ufuncها به سادگی و با کارایی بالا عملیات ریاضی را روی تمام عناصر آرایه اعمال می‌کنند.