ماتریس ها در NumPy آرایه های دو بعدی هستند که برای ذخیره و دستکاری داده های عددی به صورت منظم و ساختاریافته استفاده می شوند. آنها ابزاری قدرتمند برای محاسبات ریاضی، حل معادلات خطی، و تجزیه و تحلیل داده ها هستند.
تعریف ماتریس:
- می توانید از تابع
np.array()
با مشخص کردن ابعاد و داده های اولیه برای ایجاد ماتریس استفاده کنید:
Python
import numpy as np
# ایجاد ماتریس 2x3 با مقادیر تصادفی
matrix = np.random.rand(۲, ۳)
print(matrix)
- می توانید از لیست های لیست برای مقادیر اولیه ماتریس استفاده کنید:
Python
import numpy as np
# ایجاد ماتریس 2x3 با مقادیر دلخواه
matrix = np.array([
[۱, ۲, ۳],
[۴, ۵, ۶]
])
print(matrix)
نمایش ماتریس:
- می توانید از تابع
print()
یاnp.array_repr()
برای نمایش کامل ماتریس استفاده کنید:
Python
import numpy as np
matrix = np.array([
[۱, ۲, ۳],
[۴, ۵, ۶]
])
print(matrix) # نمایش کامل ماتریس
print(np.array_repr(matrix)) # نمایش کامل ماتریس با جزئیات بیشتر
- می توانید از اسلایس ها برای نمایش زیرمجموعه های ماتریس استفاده کنید:
Python
print(matrix[۰, :]) # نمایش سطر اول
print(matrix[:, ۲]) # نمایش ستون سوم
print(matrix[::۲, ::۲]) # نمایش عناصر با گام ۲ در هر دو بعد
دسترسی به عناصر ماتریس:
- می توانید از اندیس گذاری مبتنی بر صفر برای دسترسی به عناصر ماتریس استفاده کنید:
Python
import numpy as np
matrix = np.array([
[۱, ۲, ۳],
[۴, ۵, ۶]
])
value1 = matrix[۰, ۱] # دسترسی به عنصر در سطر اول، ستون دوم
value2 = matrix[۱, :] # دسترسی به تمام عناصر در سطر دوم
print(value1, value2)
- می توانید از اسلایس ها برای دسترسی به زیرمجموعه های عناصر ماتریس استفاده کنید:
Python
row1 = matrix[۰, :] # دسترسی به تمام عناصر در سطر اول
column2 = matrix[:, ۱] # دسترسی به تمام عناصر در ستون دوم
diagonal = matrix.diagonal() # دسترسی به عناصر قطر اصلی
print(row1, column2, diagonal)
جمع آوری ماتریس:
- می توانید از توابع NumPy مانند
np.hstack()
,np.vstack()
,np.concatenate()
برای ترکیب ماتریس ها به صورت افقی، عمودی یا با ابعاد دلخواه استفاده کنید.
Python
import numpy as np
matrix1 = np.array([
[۱, ۲],
[۳, ۴]
])
matrix2 = np.array([
[۵, ۶],
[۷, ۸]
])
# ترکیب افقی ماتریس ها
matrix_hstacked = np.hstack((matrix1, matrix2))
print(matrix_hstacked)
# ترکیب عمودی ماتریس ها
matrix_vstacked = np.vstack((matrix1, matrix2))
print(matrix_vstacked)
# ترکیب ماتریس ها با ابعاد دلخواه
matrix_concatenated = np.concatenate((matrix1, matrix2), axis=۱) # ترکیب در امتداد محور ۱
print(matrix_concatenated)
نکات:
- برای ماتریس های بزرگ، می توانید از توابع NumPy مانند
np.savetxt()
وnp.loadtxt()
برای ذخیره و بارگذاری ماتریس ها از فایل های متنی استفاده کنید. - کتابخانه های شخص ثالث مانند
scipy.sparse
برای کار با ماتریس های پراکنده که تعداد زیادی عنصر ۰ دارند، در دسترس هستند. - با تسلط بر ماتریس ها در NumPy، می توانید محاسبات ماتریسی پیچیده را به طور کارآمد انجام داده و مسائل مختلف ریاضی و مهندسی را حل کنید.
مثال جامع ماتریس ها در NumPy
در اینجا مثالی جامع از ماتریس ها در NumPy آورده شده است که شامل ایجاد، نمایش، دسترسی، جمع آوری و عملیات ماتریسی است:
فرض کنید می خواهید سیستم معادلات خطی زیر را حل کنید:
2x + 3y = 7
4x + 5y = 13
مراحل حل:
۱. ایجاد ماتریس ضرایب و بردار ثابت:
Python
import numpy as np
# ماتریس ضرایب
A = np.array([
[۲, ۳],
[۴, ۵]
])
# بردار ثابت
b = np.array([۷, ۱۳])
۲. نمایش ماتریس ها:
Python
print("ماتریس ضرایب:")
print(A)
print("بردار ثابت:")
print(b)
۳. حل سیستم معادلات خطی با استفاده از معکوس ماتریس:
Python
# محاسبه معکوس ماتریس ضرایب
A_inverse = np.linalg.inv(A)
# حل سیستم معادلات خطی
x = np.dot(A_inverse, b)
print("حل سیستم معادلات خطی:")
print(x)
۴. بررسی صحت پاسخ:
Python
# جایگزینی x در معادلات اصلی
y1 = ۲ * x[۰] + ۳ * x[۱]
y2 = ۴ * x[۰] + ۵ * x[۱]
print("بررسی صحت پاسخ:")
print("y1 =", y1)
print("y2 =", y2)
توضیح:
- در این مثال، ماتریس
A
ماتریس ضرایب سیستم معادلات خطی را نشان می دهد و بردارb
بردار ثابت را نشان می دهد. - از تابع
np.linalg.inv()
برای محاسبه معکوس ماتریسA
استفاده می شود. - از عمل ضرب ماتریس (
np.dot()
) برای حل سیستم معادلات خطی با استفاده از معکوس ماتریس و بردار ثابت استفاده می شود. - در نهایت، پاسخ ها (
x
) در معادلات اصلی جایگزین می شوند تا صحت آنها بررسی شود.
نکات:
- این مثال فقط یکی از کاربردهای ماتریس ها در NumPy است. از ماتریس ها می توان برای انجام انواع مختلف عملیات ماتریسی مانند ضرب ماتریس، انتقال ماتریس، محاسبه دترمینان و مقادیر ویژه استفاده کرد.
- کتابخانه های شخص ثالث مانند
scipy.linalg
توابع پیشرفته تری برای حل سیستم های معادلات خطی، محاسبه مقادیر ویژه و تجزیه ماتریس ارائه می دهند. - با تسلط بر ماتریس ها و عملیات ماتریسی در NumPy، می توانید طیف گسترده ای از مسائل ریاضی و مهندسی را حل کنید.
امیدوارم این مثال جامع به شما در درک و استفاده از ماتریس ها در NumPy کمک کند.