ufuncs در NumPy

ufuncs چیست؟

ufuncs به معنای “فوق‌تنظیمات عمومی” (Universal Functions) است، که به عنوان تابع‌هایی عمل می‌کنند که روی اوبجکت ndarray عمل می‌کنند.

چرا باید از ufuncs استفاده کرد؟

ufunc برای انجام矢یلایی در NumPy استفاده می‌شود، این بسیار سریع‌تر از مرور عناصر است.

آنها همچنین روش‌های دیگری مانند کاهش، جمع و غیره را ارائه می‌دهند که برای محاسبات بسیار مفید هستند.

ufuncs همچنین پارامترهای دیگری را می‌پذیرند، مانند:

where آرایه بولانی یا شرط، برای تعیین مکان انجام عملیات استفاده می‌شود.

dtype نوع بازگشتی عناصر تعریف می‌شود.

out ارزش‌های بازگشتی باید به آرایه خروجی کپی شوند.

vectorization چیست؟

تبدیل دستورالعمل‌های آنی به عملیات مبتنی بر بردار را به‌عنوان vectorization می‌نامند.

به دلیل بهینه‌سازی CPU‌های مدرن برای این نوع عملیات، سرعت بیشتر است.

جمع عناصر دو لیست:

لیست 1: [1, 2, 3, 4]

لیست 2: [4, 5, 6, 7]

یک روش این است که دو لیست را مرور کنیم و سپس برای هر عنصر جمع کنیم.

مثال

اگر ufunc نباشد، می‌توانیم از توابع داخلی Python استفاده کنیم zip() روش:

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
برای i, j در zip(x, y):
  z.append(i + j)
print(z)

اجرای مثال

برای این، NumPy یک ufunc به نام add(x, y)، که نتیجه مشابهی را خواهد داد.

مثال

با استفاده از ufunc، می‌توانیم add() وظیفه:

import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)

اجرای مثال