معرفی توابع عمومی

توابع عمومی توابعی هستند که برای انجام محاسبات ریاضی روی آرایه‌ها تعریف شده‌اند. توابع عمومی را می‌توانیم به دو دسته تک عملوندی و دو عملوندی تقسیم کنیم.

توابع عمومی دو عملوندی:

این توابع برای انجام کارشان نیاز به چند آرایه دارند. اگر بخواهیم به چند مورد اشاره کنیم می‌توانیم به 4 عمل اصلی یعنی جمع، تفریق، ضرب و تقسیم را معرفی کنیم. که  به ترتیب از متد‌های add و subtract و multiply و divide استفاده می‌شود. به کد زیر توجه کنیم:

e1 = np.array([[5, 10],
               [1, 4]])
e2 = np.array([[2, 1],
               [9, 5]])
r1 = np.add(e1, e2)
print('r1')
print(r1)
print('-------------------------------')
r2 = np.subtract(e1, e2)
print('r2')
print(r2)
print('-------------------------------')
r3 = np.multiply(e1, e2)
print('r3')
print(r3)
print('------------------------------')
r4 = np.divide(e1, e2)
print('r4')
print(r4)
print('------------------------------')

خروجی کد:

r1
[[ 7 11]
 [10  9]]
-------------------------------
r2
[[ 3  9]
 [-8 -1]]
-------------------------------
r3
[[10 10]
 [ 9 20]]
------------------------------
r4
[[ 2.5        10.        ]
 [ 0.11111111  0.8       ]]
------------------------------

 

نکته: توجه کنیم که برای استفاده از توابع بالا آرایه ها باید هم بعد باشند. یعنی اگر نمی‌توانیم یک آرایه 3 در 3 را با یک آرایه 2 در 2 جمع کنیم.

 حتی می‌توانیم به جای استفاده از توابع بالا از عملگر‌های + (به جای add)، - (به جای subtract)، * (به جای multiply) و / (به جای divide) استفاده کنیم.

e1 = np.array([[5, 10],
               [1, 4]])
e2 = np.array([[2, 1],
               [9, 5]])
r1 = e1 + e2
print('r1')
print(r1)
print('-------------------------------')
r2 = e1 - e2
print('r2')
print(r2)
print('-------------------------------')
r3 = e1 * e2
print('r3')
print(r3)
print('------------------------------')
r4 = e1 / e2
print('r4')
print(r4)
print('------------------------------')

خروجی کد:

r1
[[ 7 11]
 [10  9]]
-------------------------------
r2
[[ 3  9]
 [-8 -1]]
-------------------------------
r3
[[10 10]
 [ 9 20]]
------------------------------
r4
[[ 2.5        10.        ]
 [ 0.11111111  0.8       ]]
------------------------------

می‌بینیم که خروجی‌ها مشابه قبل است.

توابع عمومی تک عملوندی:

این توابع برای انجام کارشان نیاز به یک آرایه دارند. برای نمونه می‌توانیم به موارد زیر اشاره کنیم

معرفی متد توضیح عملکرد
abs محاسبه قدر مطلق مقادیر آرایه
sqrt محاسبه ریشه دوم عناصر آرایه
square محاسبه توان دوم عناصر آرایه
isnan تشخیص nan بودن عناصر آرایه

nan بودن به معنای not a number است و برای نشان دادن عدد نبودن مقدار یک خانه در آرایه عددی استفاده می‌شود. برای مثال اگر در یک آرایه عدد منفی وجود داشته باشد و سپس روی آن sqrt اعمال کنیم آن خانه به  nan تبدیل می‌شود.

حال برای این که بهتر متوجه شویم مثال زیر را ببینیم:

a = np.array([2, -1, 3, 10])
print("np.abs(s) ->", np.abs(a))
print("np.sqrt(s) ->",np.sqrt(a))
print("np.square(s) ->",np.square(a))
print("np.isnan(s) ->",np.isnan(a))

خروجی کد:

np.abs(s) -> [ 2  1  3 10]
np.sqrt(s) -> [1.41421356        nan 1.73205081 3.16227766]
np.square(s) -> [  4   1   9 100]
np.isnan(s) -> [False False False False]

مشاهده می‌کنیم که در خط دوم از خروجی دستور sqrt برای عضو دوم آرایه که عدد -1 است خروجی nan داده است.

در خط چهارم از خروجی نیز چون هیچ کدام از اعضای آرایه a nan نیست بنابراین به ازای تمام عناصر False داده است.

توسعه دهندگان
احمدرضا آهنگریان