NumPy - Simple Arithmetic

اعمال حسابی ساده

می‌توانید از عملگرهای حسابی +, -, *, / مستقیماً روی آرایه‌های NumPy استفاده کنید. اما در اینجا ما روی توابع توسعه یافته اعمال حسابی بحث می‌کنیم، که می‌توانند هر نوع شیء آرایه مانندی مثل تاپل، لیست و ... را دریافت و اعمال حسابی را در صورت لزوم بر اساس شرط‌های تعیین شده اعمال کنند.

تمامی توابع مطرح شده در این بخش می‌توانند یک آرگومان اختیاری where بگیرند که بر اساس آن می‌توانید تعیین کنید که اعمال حسابی مورد نظر شما در کجای آرایه اتفاق بیافتند.

جمع

تابع add() محتوای دو آرایه را با هم جمع می‌کند و نتیجه را در یک آرایه جدید برمی‌گرداند.


import numpy as np

arr1 = np.array([10, 11, 12, 13, 14, 15])
arr2 = np.array([20, 21, 22, 23, 24, 25])

newarr = np.add(arr1, arr2)

print(newarr)

خروجی:

تفریق

تابع subtract() مقادیر یک آرایه را از آرایه دیگر کم کرده و نتیجه را در یک آرایه جدید برمی‌گرداند.


import numpy as np

arr1 = np.array([10, 20, 30, 40, 50, 60])
arr2 = np.array([20, 21, 22, 23, 24, 25])

newarr = np.subtract(arr1, arr2)

print(newarr)

خروجی:

ضرب

تابع multiply() مقادیر یک آرایه را در آرایه دیگر ضرب کرده و نتیجه را در یک آرایه جدید برمی‌گرداند.


import numpy as np

arr1 = np.array([10, 20, 30, 40, 50, 60])
arr2 = np.array([20, 21, 22, 23, 24, 25])

newarr = np.multiply(arr1, arr2)

print(newarr)

خروجی:

تقسیم

تابع divide() مقادیر یک آرایه را بر آرایه دیگر تقسیم کرده و نتیجه را در یک آرایه جدید برمی‌گرداند.


import numpy as np

arr1 = np.array([10, 20, 30, 40, 50, 60])
arr2 = np.array([3, 5, 10, 8, 2, 33])

newarr = np.divide(arr1, arr2)

print(newarr)

خروجی:

توان

تابع power() مقادیر یک آرایه را به توان مقادیر آرایه دیگر رسانده و نتیجه را در یک آرایه جدید برمی‌گرداند.


import numpy as np

arr1 = np.array([10, 20, 30, 40, 50, 60])
arr2 = np.array([3, 5, 6, 8, 2, 33])

newarr = np.power(arr1, arr2)

print(newarr)

خروجی:

چنانکه ملاحظه می‌کنید جواب برخی از توان‌ها اشتباه است! زیرا با توجه به مقادیر اولیه آرایه‌ها NumPy با اعداد صحیح سطح پایین آرایه‌ها را تعریف کرده و هنگام به توان رساندن پدیده overflow رخ داده است. برای جلوگیری از چنین حالتی بهتر است نوع داده برای آرایه بوسیله آرگومان dtype مشخص شود.

باقیمانده

هر دو تابع mod() و remainder() باقیمانده تقسیم مقادیر آرایه اول به مقادیر آرایه دوم را در یک آرایه جدید برمی‌گردانند.


import numpy as np

arr1 = np.array([10, 20, 30, 40, 50, 60])
arr2 = np.array([3, 7, 9, 8, 2, 33])

newarr = np.mod(arr1, arr2)

print(newarr)

خروجی:

خارج قسمت و باقیمانده

تابع divmod() هم خارج قسمت و هم باقیمانده را برمی‌گرداند. نتیجه شامل دو آرایه است که آرایه اول شامل خارج قسمت و آرایه دوم شامل باقیمانده است.


import numpy as np

arr1 = np.array([10, 20, 30, 40, 50, 60])
arr2 = np.array([3, 7, 9, 8, 2, 33])

newarr = np.divmod(arr1, arr2)

print(newarr)

خروجی:

مقادیر مطلق

هر دو تابع absolute() و abs() مقادیر مطلق عناصر یک آرایه را برمی‌گردانند ولی برای جلوگیری از ایجاد سردرگمی با تابع داخلی math.abs() پایتون بهتر است از تابع absolute() استفاده شود.


import numpy as np

arr = np.array([-1, -2, 1, 2, 3, -4])

newarr = np.absolute(arr)

print(newarr)

خروجی: