معرفی توابع عمومی
توابع عمومی توابعی هستند که برای انجام محاسبات ریاضی روی آرایهها تعریف شدهاند. توابع عمومی را میتوانیم به دو دسته تک عملوندی و دو عملوندی تقسیم کنیم.
توابع عمومی دو عملوندی:
این توابع برای انجام کارشان نیاز به چند آرایه دارند. اگر بخواهیم به چند مورد اشاره کنیم میتوانیم به 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 داده است.