NumPy - Create Your Own ufunc
چگونه ufunc دلخواه خود را ایجاد کنیم؟
برای ایجاد ufunc دلخواه خود کافی است که یک تابع را تعریف کنید مانند حالت عادی که در پایتون تابعی را تعریف میکنید. سپس با استفاده از تابع شیء frompyfunc()
آن را به کتابخانه ufuncها در NumPy اضافه کنید.
تابع شیء frompyfunc()
به سه آرگومان نیاز دارد:
function
- اسم تابعinputs
- تعداد آرگومانهای ورودی (آرایهها)outputs
- تعداد آرایههای خروجی
به عنوان نمونه در کد زیر یک تابع دلخواه برای جمع کردن 2 آرایه تعریف شده است.
import numpy as np
def myadd(x, y):
return x+y
myadd = np.frompyfunc(myadd, 2, 1)
print(myadd([1, 2, 3, 4], [5, 6, 7, 8]))
بررسی ufunc بودن یک تابع
با استفاده از دستور type()
میتوان ufunc بودن یک تابع را بررسی کرد. اگر تابع ufunc باشد عبارت <class 'numpy.ufunc'>
برگردانده میشود. اگر ufunc نباشد، هر نوع دیگری باشد، نوع آن را برمیگرداند و در صورتی که کلاً آن را به عنوان تابع تشخیص ندهد، یک پیغام خطا را برمیگرداند.
import numpy as np
print(type(np.add)) # NumPy ufunc Function
print(type(np.concatenate)) # built-in NumPy function for joining two or more arrays
print(type(np.blahblah)) # something that does not exist. This will produce an error