عملیات اساسی روی آرایه ها و ماتریس ها در SciPy
SciPy کتابخانه ای قدرتمند برای محاسبات علمی در پایتون است که طیف گسترده ای از توابع را برای انجام عملیات مختلف روی آرایه ها و ماتریس ها ارائه می دهد.
در این بخش، به برخی از عملیات اساسی که می توانید روی آرایه ها و ماتریس ها با استفاده از SciPy انجام دهید، می پردازیم.
1. عملیات حسابی:
-
جمع، تفریق، ضرب و تقسیم:
Python
import numpy as np
array_1d = np.array([1, 2, 3, 4, 5])
array_2d = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# جمع آرایه ها
array_sum = array_1d + array_2d
# تفریق آرایه ها
array_diff = array_2d - array_1d
# ضرب آرایه ها
array_product = array_1d * array_2d
# تقسیم آرایه ها
array_division = array_2d / array_1d
- توان:
Python
# محاسبه توان دوم آرایه
array_1d_squared = array_1d ** 2
- محاسبات آماری:
Python
# محاسبه میانگین
mean_array_1d = np.mean(array_1d)
# محاسبه مجموع ماتریس
total_sum = np.sum(array_2d)
2. عملیات مقایسه:
- مقایسه مقادیر آرایه:
Python
# بررسی اینکه آیا همه مقادیر آرایه بزرگتر از 2 هستند
is_all_greater = np.all(array_1d > 2)
# بررسی اینکه آیا هیچ کدام از مقادیر آرایه برابر با 5 نیست
is_none_equal = np.any(array_2d != 5)
- یافتن مقادیر خاص در آرایه:
Python
# یافتن موقعیت اولین عدد 4 در آرایه
index_first_4 = np.where(array_1d == 4)[0][0]
# یافتن مقادیر ماتریس که بزرگتر از 5 هستند
values_gt_5 = array_2d[array_2d > 5]
3. عملیات دستکاری:
- برش گذاری:
Python
# انتخاب ردیف اول ماتریس
row_1 = array_2d[0, :]
# انتخاب ستون دوم ماتریس
column_2 = array_2d[:, 1]
# انتخاب زیرماتریس
sub_matrix = array_2d[1:3, 0:2]
- ایجاد آرایه های جدید از آرایه های موجود:
Python
# ایجاد آرایه جدید با مقادیر مطلق از آرایه 1 بعدی
array_abs = np.abs(array_1d)
# ایجاد آرایه جدید با مقادیر انتقال یافته از ماتریس
array_transpose = np.transpose(array_2d)
4. عملیات ماتریسی:
- ضرب ماتریس:
Python
matrix_1 = np.matrix([[1, 2, 3],
[4, 5, 6]])
matrix_2 = np.matrix([[7, 8, 9],
[10, 11, 12]])
matrix_product = matrix_1 * matrix_2
- معکوس ماتریس:
Python
matrix_inverse = np.linalg.inv(matrix_1)
- حل معادلات خطی:
Python
matrix_a = np.matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
b = np.array([10, 11, 12])
x = np.linalg.solve(matrix_a, b)