نحوه تعریف ماتریس در پایتون – به زبان ساده + مثال و کد
نحوه تعریف ماتریس در پایتون در سادهترین شکل به این صورت است که ابتدا لیستی را تعریف میکنیم. سپس داخل آن لیست دیگر را تعریف میکنیم. هر کدام از این لیستها هم شامل عنصر مجزا هستند. برای مثال یک ماتریس دوبعدی سه در سه را تشکیل میدهد. ماتریس عنصری بسیار مهم در ریاضیات و برنامه نویسی است. کامپیوترها با کمک ماتریس، دادهها را در ساختارهای منظمی نگهداری میکنند. ماتریس در پایتون از آرایه دو بعدی ساخته میشود. این آرایه میتواند شامل اعداد، کاراکترها و عبارتهایی باشد که به صورت بسیار منظم در سطر و ستونهای مشخص شده قرار گرفتهاند. ماتریسها به اجزای بسیار مهمی در حوزههای مختلف مانند جبرخطی، ماشین لرنینگ، گرافیک کامپیوتری و محاسبات علمی تبدیل شدهاند. زیرا میتوانند محاسبات و ساختارهای داده پیچیده را به شکل خوبی مدیریت بکنند.
- متوجه میشوید که چه روشهایی برای تعریف ماتریس پایتون وجود دارند.
- روش تعریف ماتریس به صورت لیستی از لیستها را همراه با مثال یاد میگیرید.
- یاد میگیرید که چطور با کمک دادههای وارد شده توسط کاربر ماتریس بسازید.
- نحوه کار با تکنیک List Comprehension را برای تعریف ماتریس میآموزید.
- با ابزارهای تخصصی numpy برای ساخت ماتریس و انجام عملیات ریاضی بر روی آن آشنا میشوید.
- با کمک چند مثال ساده، روش اجرای بعضی از وظایف رایج ریاضی بر روی ماتریسها را میآموزید.


در این مطلب از مجله فرادرس، نحوه ساخت ماتریس در پایتون را به شکل دقیق بررسی میکنیم. اول تمام روشهای انجام این کار را نام میبریم. سپس یک به یک نحوه اجرای آنها را همراه با مثالهای ساده توضیح میدهیم. در پایان هم چند مثال ساده درباره کار با ماتریس را بررسی میکنیم. در بخش پایانی، نحوه پیادهسازی رایجترین عملیات ماتریسها را به کمک کدهای پایتون و کتابخانه «NumPy» آموزش میدهیم.
نحوه تعریف ماتریس در پایتون به چه شکل است؟
قبل از شناخت روشهای مختلف تعریف و کار با ماتریس در پایتون لازم است که با این ساختار منظم به شکل بهتری آشنا بشویم. در پایتون، ماتریس به آرایههای مستطیلی شکلی گفته میشود که شامل عناصری از جنس عدد، کاراکتر یا عبارتهای مختلف هستند. تمام این عناصر باید به شکل منظم و در ساختار تشکیل شده از سطر و ستون قرار بگیرند. وظیفه اصلی ماتریس، نگهداری از دادهها در ساختاری منظم است.
اندازه ماتریس با توجه به ابعاد آن تعریف میشود. به طور معمول برای اشاره به اندازه سطرها از «m» و برای اشاره به تعداد ستونها از «n» استفاده میکنیم. در اصطلاح گفته میشود که ماتریس مورد نظر در اندازه «m × n» است. این ساختار یکی از اصول بنیادین پایتون برای سازماندهی و پردازش دادههای پیچیده است.
نکته: در پایتون، هیچ ساختار درونی به صورت پیشفرض برای نمایش ماتریسها تعریف نشده است. بنابراین از لیستها برای انجام این کار استفاده میکنیم. در واقع ماتریس در پایتون به صورت لیستی از لیستها نوشته میشود. پایتون با این روش به برنامه نویسان کمک میکند که به شکل عملی و کاربردی بر روی ماتریسها کار بکنند. محبوبیت و همه کاره بودن پایتون، این زبان را به گزینه خوبی برای ساخت ماتریسها تبدیل کرده است. زیرا اکوسیستم غنی این زبان از ابزارها و کتابخانههای بسیار متنوع و قدرتمندی تشکیل شده است.
در کادر زیر ماتریس سادهای را پیادهسازی کردهایم.
شکل بالا، یک ماتریس ۳×۳ را نشان میدهد. این ماتریس از ۳ سطر و ۳ ستون تشکیل شده است. با استفاده از اندیسهای موجود در لیستها میتوانیم به تمام عناصر تشکیل دهنده ماتریس در پایتون به صورت مستقل دسترسی داشته باشیم. برای مثال، عبارت
matrix[1][2] در ماتریس بالا به عنصری اشاره میکند که در ردیف دوم و ستون سوم (یعنی عدد 5 ) قرار دارد.
تا به این قسمت از مطلب شاخت ساده و خوبی نسبت به ماتریس و روش تعریف آن در پایتون پیدا کردهاید. در بخشهای بعدی هم انواع روشهای تعریف ماتریس در پایتون را بررسی میکنیم. هم اینکه چند مورد از رایجترین عملیات مربوط به کار با ماتریس در پایتون را پیادهسازی خواهیم کرد. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد میکنیم که حتما اپلیکیشن مجله فرادرس را بر روی دستگاههای همراه خود نصب کنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
انعطافپذیری پایتون در مدیریت ماتریسها این زبان را به گزینه بسیار خوبی برای کار توسط افراد مبتدی و حرفهای تبدیل کرده است. در فهرست زیر، رایجترین روشهای تعریف ماتریس در پایتون را معرفی کردهایم.
- ساخت ماتریس به صورت لیستی از لیستها
- ساختن ماتریس با کمک دادههای وارد شده توسط کاربر
- نحوه تعریف ماتریس در پایتون با کمک «List Comprehension»
- استفاده از کتابخانه Numpy

هر کدام از روشهای بالا نوع خاصی از نحوه تعریف ماتریس در پایتون هستند و از الگوریتم متفاوتی پیروی میکنند.
| روش ساخت ماتریس | ویژگی ساده |
|---|---|
| لیستهای تو در تو | ساده و مناسب مبتدیان |
| دریافت داده از کاربر | مناسب برنامههای پویا |
| List Comprehension | کوتاه و تمیز برای کدنویسی |
| NumPy | سریع و مناسب محاسبات علمی |
در ادامه مطلب، تمام این روشها را یک به یک بررسی کرده و برای هر کدام مثالهای سادهای میزنیم.
نحوه تعریف ماتریس در پایتون با لیستهای تو در تو
این روش کاملا شهودی بوده و گزینه بسیار مناسبی برای افراد مبتدی و تازه کار است. در این رویکرد، هر کدام از لیستهای درونی نشاندهنده یک ردیف هستند. بنابرین خیلی راحتتر میتوانیم ساختار منطقی ماتریس را به تصویر بکشیم. در این روش، برنامه نویس خیلی ساده دادههای موجود در سطرها و ستونهای ماتریس را تشخیص میدهد.
لیستها یکی از ساختارهای داده بسیار پرکاربرد و مهم در زبان پایتون هستند. تمام برنامه نویسان پایتون حتی افراد مبتدی باید در کار با لیستها حرفهای باشند. البته کار با این ساختار داده بسیار هم ساده است. اما ریزهکاریهای متنوعی دارد. برای آشنایی و حرفهای شدن در کار با لیستهای این زبان، پیشنهاد میکنیم که فیلم آموزش رایگان لیست در زبان برنامه نویسی پایتون با مثال را در فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک دسترسی به این فیلم را در پایین نیز قرار دادهایم.
در کادر پایین، ماتریسی را به صورت لیستی از لیستهای پایتون تعریف کردهایم.
در کادر بالا هر کدام از لیستهای درونی [1, 2, 3] و [4, 5, 6] و [7, 8, 9] نشان دهنده یک ردیف از ماتریس هستند. این لیستها در کنار همدیگر ساختار ماتریس دوبعدی ۳×۳ را تشکیل میدهند.
یادگیری پایتون با کمک فیلم های فرادرس
در بین زبانهای برنامهنویسی، پایتون یکی از بهترین گزینهها برای توسعه نرمافزارهای مدرن و پیچیده است. سینتکس پایتون به زبان انسان (البته به زبان انگلیسی) نزدیک است. بنابراین فرایند یادگیری و استفاده از این زبان هم برای افراد آشنا به انگلیسی کار بسیار سادهای است. آموزش مهارتهای برنامهنویسی پایتون جزو بهترین گزینهها برای اشخاص علاقهمند به شغلهای برنامهنویسی است. در ضمن، با افزایش مهارت، یادگیری زبان پایتون به مرور جذابتر و کاربردیتر نیز میشود. یکی از مقرونبهصرفهترین و کاربردیترین روشها برای یادگیری پایتون، استفاده از فیلمهای آموزشی است.

فرادرس به شکل تخصصی به تولید فیلمهای آموزشی میپردازد. زبان پایتون هم یکی از گزینههای بسیار مهم در سبد محصولات آموزشی فرادرس است. برای آموزش زبان پایتون در حد ابتدایی میتوانید، فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه را از فرادرس مشاهده کنید. اما اگر دورههای اولیه این زبان را گذراندهاید، پیشنهاد میکنیم از فیلمهای مربوط به مفاهیم پیشرفته دیدن کنید. با مشاهده و تمرین همراه با این فیلمها مهارتهای برنامه نویسی خودتان را تا حد قابل قبول برای بازار کار بالا میبرید.
در پایین فیلمهای آموزشی دیگری را معرفی کردهایم که برای آموزش سطوح پیشرفتهتر برنامهنویسی مفید هستند.
- فیلم آموزش ویژوال پایتون، برنامه نویسی پایتون بدون کدنویسی با Visual Python + گواهینامه
- فیلم آموزش Google Colab، نوشتن و اجرای اولین برنامه پایتون در کولب + گواهینامه
- فیلم آموزش پروژه محور یادگیری ماشین در پایتون، ویژه مهندسی مکانیک + گواهینامه
- فیلم آموزش ماژول Cryptography در پایتون، درباره رمزنگاری و رمزگشایی فایل ها + گواهینامه
- فیلم آموزش برنامه نویسی پایتون، ویژه مدیریت و علوم انسانی + گواهینامه
در ادامه مطلب، روش ساخت ماتریس با کمک دادههای وارد شده توسط کاربران را بررسی میکنیم.
ساختن ماتریس با دادههای وارد شده توسط کاربر
این تکنیک، گزینه بسیار خوبی برای پیادهسازی سناریوهای پویا است. در این روش، دادههای مربوط به ماتریس به کمک تعامل با کاربر تولید میشوند.
در کادر پایین، نمونه برنامهای را نوشتهایم که مرحله به مرحله از کاربر داده دریافت کرده و ماتریس را میسازد.
بعد از اجرای برنامه بالا، مفسر پایتون خروجی زیر را نمایش میدهد. در واقع این برنامه، چهار بار از کاربر میخواهد که عناصر مختلف ماتریس را وارد بکند. اعداد وارد شده در پایین توسط خود ما و به صورت دلخواه نوشته شدهاند.
Enter element at position 1,1: 2
Enter element at position 1,2: 3
Enter element at position 2,1: 4
Enter element at position 2,2: 6در کد بالا پیغامی تعبیه شده است. با هربار چرخش حلقه این پیغام از کاربر میخواهد یکی از عناصر ماتریس را وارد کند. حلقه ۴ بار گردش میکند و ماتریس به صورت زنده همزمان با وارد کردن داده توسط کاربر ساخته میشود. در نهایت ماتریس ۲×۲ به صورت کاملا پویا ساخته میشود.
ساخت ماتریس در پایتون با List Comprehension
برای کار با ماتریس در پایتون لازم است روشهای مختلف ساخت این ساختار ریاضی را یاد بگیریم. یکی از روشهای دیگر شامل استفاده از تکنیک List Comprehension است. این تکنیک روش بسیار کوتاه و مختصری برای ساخت لیستها و ماتریسهاست. بیشتر اوقات برای تمیز نوشتن کد در پروژههای بزرگ از تکنیک List Comprehension استفاده میشود.
برنامه نویسان پایتون باید روش کار با لیستها را بلد باشند. پایتون، متدهای متنوعی برای کار با لیستها ارائه داده است. به منظور آشنایی هرچه بهتر با متدهای لیست در پایتون پیشنهاد میکنیم که مطلب مربوط به آن را در مجله فرادرس، مطالعه کنید. در کادر پایین، روش ساخت ماتریس ۳×۳ با کمک List Comprehension را پیادهسازی کردهایم.
با کمک List Comprehension میتوانیم ماتریسها را به کمک سینتکس فشردهتری بسازیم. در تکنیک بالا ماتریس به وسیله محاسبه کردن مقدار هر عنصر بر اساس جایگاه آن ساخته میشود. بعد از اجرا شدن این کدها ماتریسی با اندازه ۳×۳ ساخته شده است.

کار با ماتریس در پایتون
بعد از آموختن نحوه ساخت ماتریس در پایتون باید روش کار با این ساختار ریاضی را هم بلد باشیم. این روش شامل چند عملیات مشهور از قبیل موارد زیر است.
- تخصیص عنصر به خانههای ماتریس
- خواندن عنصر از خانههای ماتریس
- انجام عملیات ریاضی بر روی ماتریسها
- ساخت ماتریس وارون
در ادامه تمام موارد بالا را یک به یک بررسی میکنیم.
افزودن مقدار به خانههای ماتریس
یکی از قسمتهای مهم کار با ماتریس در پایتون، به اعمال تغییرات در مقادیر ذخیره شده مربوط است. در این بخش از مطلب، روشهای تخصیص مقدار به خانههای ماتریس را بررسی میکنیم. با این کار میتوانیم مقادیر ماتریس را بهروزرسانی کرده و تغییرات مختلفی در ماتریس ایجاد کنیم.
روش اول: تخصیص مقدار به سلول مشخص در ماتریس
راحتترین و بهترین روش برای اعمال تغییرات در مقادیر سلولهای ماتریس این است که به شکل مستقیم از اندیسهای هر سلول استفاده کنیم. در کادر پایین، مقدار سلول موجود در ردیف و ستون دوم ماتریس را با کمک دستور صریح، تغییر میدهیم.
در کدهای بالا به شکل مستقیم به سلول موجود در ستون و ردیف دوم دسترسی پیدا کردهایم. برای انجام این کار از اندیسهای لیستها استفاده میکنیم. توجه کنید که در ماتریسها هم مانند لیست، شماره اندیس از صفر شروع میشود. با کمک دستور matrix[1][1] = 10 به شکل مستقیم مقدار این سلول را برابر با ۱۰ قرار دادیم. این تکنیک، روشی سریع و کاربردی برای کار بر روی سلولهای مجزا است.
روش دوم: تخصیص مقدار به سلولها با استفاده از حلقه
در سناریوهای پیچیده، استفاده از حلقههای پایتون برای پیمایش سلولهای ماتریس و مقداردهی به سلول مشخص شده روش بهتری است. در کادر پایین از حلقه for برای پیمایش سلولهای ماتریس استفاده کردهایم. توجه داشته باشید که برای پیمایش ماتریسهای دوبعدی باید از حلقههای تو در تو در پایتون استفاده کنیم.
در تکنیک بالا برای پیمایش ماتریس از حلقه for به صورت تو در تو استفاده کردهایم. به محض پیدا شدن مکان سلول هدف، مقدار جدید (new_value = 15 ) به آن اختصاص داده میشود. برای مشخص کردن سطر و ستون این سلول به ترتیب از متغیرهای target_row و target_column کمک گرفتهایم. در زبان پایتون با این کار میتوانیم سلولهای ماتریس را به شکل پویا بهروزرسانی کنیم. دسترسی مستقیم به عناصر برای استخراج اطلاعات از ماتریس، اجرای عملیات ریاضی و اجرای «عملیات تصمیمگیری داده-محور» (Making Data-Driven Decisions) بسیار مهم است.

روش اول: دسترسی مستقیم به مقادیر ماتریس
بهترین و سادهترین روش برای دسترسی به سلولهای ماتریس استفاده صریح از شماره اندیسهای هر سلول است.
در روش بالا با مشخص کردن مستقیم شماره ردیف و ستون به سلول مورد نظر در ماتریس دسترسی پیدا کردهایم. در مثال بالا عدد 5 را از سطر و ستون دوم ماتریس استخراج کرده و در متغیر value قرار دادهایم.
روش دوم: دسترسی به سلولها با کمک اندیس منفی
پایتون از اندیسهای منفی هم پشتیبانی میکند. با این کار میتوانیم به شکل برعکس (از آخر به اول) به تمام مقادیر لیست یا ماتریس دسترسی پیدا کنیم.
درباره کد بالا و به طور کل اندیسهای منفی باید به چند نکته توجه کنید.
- استفاده از اندیس منفی به معنای پیمایش لیست یا ماتریس از انتها است.
- اندیس -1 یعنی آخرین سلول در لیست یا هر ردیف، بنابراین با آدرس دهی به صورت matrix[-1][-1] به آخرین سلول (یعنی پایینترین سلول در سمت راست) در ماتریس دسترسی پیدا میکنیم.
عملیات ریاضی بر روی ماتریس ها در پایتون
در پایتون از ماتریسها مانند ابزارهای چندکاره استفاده میکنند. با کمک این ابزار قدرتمند میتوان طیف گستردهای از عملیات ریاضی را اجرا کرد. در این بخش از مطلب، روشهای اضافه کردن، تفریق، ضرب و تقسیم را در ماتریسها بررسی میکنیم.
مثال اول: اضافه کردن مقدار به عناصر ماتریس با حلقه
با کمک حلقه به راحتی میتوانیم مقدار ثابتی را به تمام عناصر ماتریس اضافه کنیم. در کادر پایین، روش استفاده از حلقه for در پایتون برای اضافه کردن مقدار جدید به ماتریس را کدنویسی کردهایم.
برای نمایش دادن خانههای ماتریس ساخته شده به شکل سطر و ستون در خروجی، میتوانیم از حلقهها در پایتون استفاده کنیم. با افزودن کد زیر به انتهای کد بالا ماتریس ساخته شده با همین چهارچوب ۲×۲ نمایش داده میشود.
بعد افزودن کد بالا به کد قبل و اجرای برنامه، خروجی زیر توسط مفسر پایتون تولید شده و در کنسول نمایش داده میشود.
[6, 7]
[8, 9]در کدهای بالا، از حلقههای تو در تو در پایتون استفاده کردهایم. با این تکنیک عدد 5 را به تمام عناصر موجود در ماتریس اضافه کردیم.
مثال دوم: استفاده از List Comprehension برای جمع و تفریق در عناصر ماتریس
List Comprehension روش کوتاه و مختصری برای جمع و تفریک کردن عناصر ماتریس ارائه میدهد. از این ابزار میتوان بر روی تمام ماتریسها استفاده کرد.
در کادر پایین با کمک List Comprehension ابتدا به تمام عناصر ماتریس ۲ واحد اضافه کردهایم. سپس مقدار ۱ واحد از تمام عناصر ماتریس کم کردیم.
برای مشاهده ماتریسها بعد از اعمال تغییرات کافی است که از کد نوشته شده در بخش قبل استفاده کنیم. این عملیات به طور کامل بر اساس عناصر ماتریس انجام میشود. در کدهای بالا با بهروزرسانی مقادیر ماتریس، دو ماتریس جدید ساختهایم. خروجی کدهای بالا به شکل زیر در کنسول نمایش داده میشود.
[3, 4]
[5, 6]
[0, 1]
[2, 3]مثال سوم: ضرب و تقسیم دو ماتریس
ضرب و تقسیم در ماتریسها جزو عملیات پیشرفته دستهبندی میشوند. این عملیات بیشتر اوقات در محاسبات پیچیده ریاضی به کار برده میشوند. با این حال به عنوان توسعه دهنده پایتون بهتر است که روش اجرای این محاسبات را نیز بلد باشیم.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
[4, 8]
[10, 18]
[0.5, 1.0]
[3.0, 1.3333333333333333]در این کدها، عملیات ضرب و تقسیم با استفاده از توابع اختصاصی پیادهسازی شدهاند. ابتدا ضرب ماتریسی با «قانون ضرب داخلی» (Dot Product Rule) اجرا میشود. سپس عملیات تقسیم به صورت عنصربهعنصر انجام میشود. در واقع در این کدها توانایی پایتون برای مدیریت عملیات پیچیده ماتریسی را نشان دادهایم.

ساخت ماتریس ترانهاده
ساخت ماتریس ترانهاده به معنای این است که جای سطرها و ستونها را عوض کنیم. این کار یکی از عملیات بسیار مهم و پایهای در بخشهای مختلف ریاضیات و محاسبات است. برای مثال میتوان به «جبر خطی» (Linear Algebra) و عملیات مربوط پیش پردازش دادهها در پایتون اشاره کرد.
مثال اول: ساخت ماتریس ترانهاده با کمک حلقهها در پایتون
یکی از کارآمدترین روشها برای ترانهادن ماتریس، استفاده از حلقههاست. با کمک حلقههای پایتون به راحتی میتوان جای سطرها و ستونهای ماتریس را تغییر داد.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
[1, 2]
[3, 4]
[5, 6]
[1, 3, 5]
[2, 4, 6]ساختار منطقی کدهای بالا را در فهرست پایین توضیح دادهایم.
- در این کدها ابتدا ماتریسی به نام matrix برای ذخیره کردن دادههای اولیه تعریف کردهایم.
- سپس ماتریس transpose_matrix را با هدف دخیره کردن دادههای جابهجا شده از ماتریس اصلی تعریف میکنیم.
- با کمک دو حلقه for به صورت تو در تو ماتریس اصلی را پیمایش میکنیم.
- در مدت پیمایش این ماتریس به هر عنصری که میرسیم آن را در جایگاه جدید خودش در ماتریس transpose_matrix قرار میدهیم. با انجام این عملیات و پایان پیمایش ماتریس اصلی توسط حلقههای تو در تو در نهایت ماتریس transpose_matrix به صورت ترانهاده شده ماتریس matrix ساخته میشود.
یادگیری پایتون همراه با پیاده سازی پروژه های عملی
فرادرس یکی از بزرگترین و حرفهایترین تولیدکنندگان فیلمهای آموزشی به زبان فارسی است. در تمام رشتههای علمی، صنعتی، تحصیلی و غیره فیلمهای آموزشی بسیار با کیفیتی توسط فرادرس تولید و منتشر شدهاند. زبان برنامهنویسی پایتون هم یکی از پرطرفدارترین زبانهای مورد استفاده در دنیاست. بنابراین افراد زیادی خواستار دسترسی به دورههای آموزشی آن هستند. در نتیجه فرادرس سعی کرده است تا بهترین فیلمهای آموزشی پایتون را تولید و منتشر کند. آموزش همراه با اجرای پروژههای رایج در دنیای واقعی یکی از روشهای بسیار خوب برای یادگیری برنامهنویسی است. به همین جهت در فرادرس فیلمهای آموزشی پروژه محور زیادی در ارتباط با زبان برنامهنویسی پایتون تهیه شدهاند.
در پایین، چند مورد فیلم آموزشی پروژهمحور زبان پایتون را معرفی کردهایم.
- فیلم آموزش ساخت داشبورد هوش تجاری با Streamlit به صورت پروژه عملی + گواهینامه
- فیلم آموزش پروژه محور پایتون درباره ایجاد QR Code و اسکن آن با ۴ کتابخانه Python
- فیلم آموزش ساخت نرم افزارهای گرافیکی دسکتاپ با PySide6 در پایتون + پروژههای کاربردی
- فیلم آموزش پیاده سازی سیستم لایک با AJAX در جنگو + گواهینامه
- فیلم آموزش ساخت چت بات در پایتون با «چت جی پی تی» (ChatGPT)
در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و از فیلمهای پروژهمحور بیشتری دیدن کنید.

در بخش بعد نحوه تعریف ماتریس در پایتون به کمک کتابخانه NumPy را در کنار اجرای عملیات مختلف بر روی این ساختار بررسی میکنیم.
کار با ماتریس در پایتون با کمک NumPy
کتابخانه «نامپای» (NumPy) یکی از کاربردیترین ابزارهای پایتون در زمینه انجام محاسبات ریاضی و به طور خاص کار بر روی ماتریسها و آرایهها است. در این بخش از مطلب، روش استفاده از امکانات این کتابخانه برای اجرای عملیات پایه بر روی ماتریسها را بررسی میکنیم.
در جدول پایین، خلاصهای از عملیات بررسی شده در این بخش را معرفی کردهایم.
| عملیات در NumPy | کاربرد ساده |
|---|---|
| np.array() | ساخت ماتریس |
| عملیات ریاضی | انجام محاسبات روی ماتریس |
| ضرب داخلی و برداری | اجرای محاسبات علمی |
| ترانهاده ماتریس | جابهجایی سطر و ستون |
| np.empty() | ساخت ماتریس خالی |
| تکهتکه کردن ماتریس | استخراج اطلاعات از ماتریس |
| np.delete() | حذف سطر یا ستون |
| افزودن سطر یا ستون | گسترش ماتریس |
تعریف ماتریس در پایتون با کمک NumPy
کتابخانه NumPy در پایتون، با کمک تابع np.array() عملیات ساخت ماتریس را سادهتر کرده است. سادهسازی این عملیات تاثیر بسیار مهمی در اجرای بهتر پروژههای گوناگونی مانند ریاضیات، مهندسی و «علم داده» (Data Science) دارد. در کادر پایین، نحوه تعریف ماتریس در پایتون با کمک تابع np.array() را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
[1 2 3]
[4 5 6]همینطور که در کدهای بالا مشاهده کردید، با کمک تابع np.array() به آسانی ماتریس ۳×۲ ساخته شد. این روش گزینه بسیار ساده و کارآمدی برای تعریف کردن ساختارهای ماتریسی در پایتون است.
اجرای عملیات ریاضی با NumPy
NumPy در اجرای انواع عملیات ریاضی و محاسبات پیچیده بر روی ماتریسها بسیار خوب عمل میکند. در این بخش روش اجرای چند عملیات ساده را کدنویسی کردهایم.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
Addition result:
[3 2]
[4 7]
Multiplication result:
[4 6]
[10 12]
Element-wise multiplication:
[2 0]
[ 3 12]در کدهای بالا میتوانیم قدرت بالا پایتون را درباره مدیریت انواع عملیات ساده و پیچیده بر روی ماتریسها مشاهده کنیم. در این کدها کارهایی مانند اضافه کردن، ضرب و تقسیم عنصربهعنصر اجرا شدهاند.
ضرب داخلی و ضرب برداری
اجرای عملیات «ضرب داخلی» (Dot Product) و «ضرب برداری» (Cross Product) با کمک کتابخانه NumPy بسیار ساده است. این دو عملیات در بسیاری از محاسبات علمی به کار برده میشوند.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
Dot product result:
[4 6]
[10 12]
Cross product result:
-4
5توابع np.Dot() و np.cross() به ترتیب با هدف اجرای عملیات ضرب داخلی و ضرب برداری در NumPy طراحی شدهاند. در واقع این توابع قدرت، سرعت عمل و سادگی استفاده از کتابخانه NumPy را نشان میدهند. از جمله کاربردهای ضرب داخلی و برداری میتوان به انجام تحلیل نمودار و محاسبات فیزیکی اشاره کرد.
ساخت ماتریس ترانهاده
استفاده از NumPy عملیات ترانهادن ماتریسها را هم سادهتر میکند. ساخت ماتریس ترانهاده، عملیات بسیار رایجی در زمان کار با دادهها یا اجرای محاسبات ریاضی است.

در کادر پایین، روش استفاده از NumPy برای ساخت ماتریس ترانهاده را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
[1 3 5]
[2 4 6]تابع np.transpose() در نامپای به شکل بسیار خوب و دقیقی سطرهای ماتریس را به ستون و ستونهای آن را به سطر تبدیل میکند. عملکرد بسیار خوب این تابع، مدرک دیگری درباره توانایی بالای انجام عملیات بر روی ماتریسها در نامپای است.
ساخت ماتریس خالی با کمک NumPy
در نامپای میتوانیم ماتریسهای خالی ایجاد کنیم. بیشتر اوقات هدف از ساخت این ماتریسها این است که در بخشهای بعدی به کار برده شوند. نامپای برای انجام این عملیات از تابع np.empty() کمک میگیرد.
در کادر بالا با کمک تابع np.empty() ماتریس خالی ساختهایم. منظور از ماتریس خالی این است که هنوز هیچ دادهای در سلولهای این ماتریس قرار نگرفتهاند. این تکنیک بیشتر در سناریوهایی به کار برده میشود که برنامه نویس میخواهد با توجه به دادههای ساخته شده در آینده ماتریسها را پر بکند.
تکه تکه کردن ماتریسها
کتابخانه NumPy توانایی زیادی در «تکهتکه کردن» (Slicing) ماتریسها دارد. این مهارتها در اجرای پروژههایی مانند «تحلیل داده» (Data Analysis) و کار بر روی دادهها کاربرد دارد.
در کادر پایین، نمونهای از عملیات ساده تکهتکه کردن ماتریسها را با کمک NumPy، پیادهسازی کردهایم.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
Single element: 6
Row slice: [1 2 3]
Column slice: [2 5 8]سینتکس دستور اختصاصی نامپای برای تکهتکه کردن ماتریسها به برنامه نویسان کمک میکند تا با دقت بالایی عناصر، سطرها یا ستونهای مورد نیاز خود را از داخل ماتریس استخراج بکنند. وجود این ویژگی میزان بالای کاربردی بودن NumPy در مدیریت دادهها را نشان میدهد.
حذف سطرها و ستونها با کمک NumPy
وجود تابع np.delete() در نامپای، اجرای عملیات حذف سطر، ستون یا بعد خاصی از ماتریسها را سادهتر کرده است. در کادر پایین، نمونه سادهای از به کارگیری این تابع برای حذف سطر و ستون ماتریس را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
Orginal matrix:
[1 2 3]
[4 5 6]
[7 8 9]
matrix without row:
[1 2 3]
[7 8 9]
matrix without column:
[1 3]
[4 6]
[7 9]با کمک تابع np.delete() به راحتی میتوانیم ردیفها و ستونهای هر ماتریسی را حذف کنیم. این دستور برای انجام وظایفی مانند پردازش داده و کاهش ابعاد بسیار مفید است.

اضافه کردن ردیف یا ستون به ماتریس
یکی از رایجترین عملیات مربوط به ماتریسها گسترش آنهاست. برای گسترش ماتریس به آن سطر یا ستون اضافه میکنند. NumPy به سادگی میتواند از پس این کار نیز بربیاید.
بعد از اجرای کدهای بالا در کد ادیتور، خروجی زیر در کنسول پایتون نمایش داده میشود.
Orginal matrix:
[1 2]
[3 4]
matrix with new row:
[1 2]
[3 4]
[5 6]
matrix with new column:
[1 2 7]
[3 4 8]در نامپای برای اضافه کردن سطرها و ستونهای جدید به ترتیب از توابع np.vstack() و np.hstack() استفاده میشود. این توانایی در زمان اجرای عملیات مربوط به گسترش ماتریس یا تنظیم کردن ابعاد ماتریسهای مختلف با هم بسیار ضروری و حیاتی است.
جمعبندی
در این مطلب از مجله فرادرس با تکنیکهای مختلف تعریف ماتریس در پایتون آشنا شدهایم. ماتریس، آرایهای مستطیلی شکل از عناصر مرتبط با هم در سطرها و ستونهاست. اغلب اوقات در پایتون، ماتریسها را به شکل لیستی از لیستها نمایش میدهند. ماتریسها میتوانند شامل عناصر مختلفی مانند اعداد، نمادها متغیرها یا حتی عبارتهای پیچیده باشند. اندازه ماتریس را از روی تعداد سطر و ستون آن مشخص میکنند. نحوه تعریف ماتریس در پایتون شامل تکنیکهای مختلفی مانند ساخت لیستی از لیستها، گرفتن داده از کاربر و استفاده از List Comprehension است. برای تغییر دادن مقادیر درون ماتریس میتوانیم به صورت مستقیم از شماره اندیس هر خانه استفاده کنیم. علاوه بر آن میتوانیم با کمک حلقه بر روی ماتریس نیز پیمایش بکنیم.
برای دسترسی به مقادیر درون ماتریس باید از شماره اندیس سطر و ستون آنها استفاده کنیم. برای دسترسی به مقادیر انتهایی ماتریس هم میتوانیم از اندیسهای منفی کمک بگیریم. NumPy کار کردن بر روی ماتریسها را خیلی حرفهای تر کرده است. با کمک این کتابخانه به سادگی میتوانیم عملیاتی مانند ضرببرداری، ضرب داخلی، ترانهاده کردن ماتریسها و ساخت ماتریس معمولی و خالی را انجام بدهیم. با استفاده از NumPy به راحتی میتوانیم ماتریسها را تکهتکه کرده و دادههای مورد نیاز خود را از درون آنها استخراج کنیم. با کمک تابع np.delete() به راحتی سطر یا ستون ماتریس را حذف میکنیم. اما برای اضافه کردن سطرها و ستونهای جدید به ترتیب از توابع np.vstack() و np.hstack() کمک میگیریم.












