نحوه تعریف ماتریس در پایتون – به زبان ساده + مثال و کد

۹۹
۱۴۰۵/۰۲/۲۱
۱۹ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

نحوه تعریف ماتریس در پایتون در ساده‌ترین شکل به این صورت است که ابتدا لیستی را تعریف می‌کنیم. سپس داخل آن nn لیست دیگر را تعریف می‌کنیم. هر کدام از این لیست‌ها هم شامل mm عنصر مجزا هستند. برای مثال [[7,8,9],[4,5,6],[1,2,3]][[7, 8, 9], [4, 5, 6], [1, 2, 3]] یک ماتریس دو‌بعدی سه در سه را تشکیل می‌دهد. ماتریس عنصری بسیار مهم در ریاضیات و برنامه نویسی است. کامپیوتر‌ها با کمک ماتریس، داده‌ها را در ساختار‌های منظمی نگهداری می‌کنند. ماتریس در پایتون از آرایه دو بعدی ساخته می‌شود. این آرایه می‌تواند شامل اعداد، کاراکتر‌ها و عبارت‌هایی باشد که به صورت بسیار منظم در سطر و ستون‌های مشخص شده قرار گرفته‌اند. ماتریس‌ها به اجزای بسیار مهمی در حوزه‌های مختلف مانند جبرخطی، ماشین لرنینگ، گرافیک کامپیوتری و محاسبات علمی تبدیل شده‌اند. زیرا می‌توانند محاسبات و ساختارهای داده پیچیده را به شکل خوبی مدیریت بکنند.

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

در این مطلب از مجله فرادرس، نحوه ساخت ماتریس در پایتون را به شکل دقیق بررسی می‌کنیم. اول تمام روش‌های انجام این کار را نام می‌بریم. سپس یک به یک نحوه اجرای آ‌ن‌ها را همراه با مثال‌های ساده‌ توضیح می‌دهیم. در پایان هم چند مثال ساده درباره کار با ماتریس را بررسی می‌کنیم. در بخش پایانی، نحوه پیاده‌سازی رایج‌ترین عملیات ماتریس‌ها را به کمک کدهای پایتون و کتابخانه «NumPy» آموزش می‌دهیم.

نحوه تعریف ماتریس در پایتون به چه شکل است؟

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

اندازه ماتریس با توجه به ابعاد آن تعریف می‌شود. به طور معمول برای اشاره به اندازه سطر‌ها از «m» و برای اشاره به تعداد ستون‌ها از «n» استفاده می‌کنیم. در اصطلاح گفته می‌شود که ماتریس مورد نظر در اندازه «m × n» است. این ساختار یکی از اصول بنیادین پایتون برای سازماندهی و پردازش داده‌های پیچیده است.

نکته: در پایتون، هیچ ساختار درونی به صورت پیش‌فرض برای نمایش ماتریس‌ها تعریف نشده است. بنابراین از لیست‌ها برای انجام این کار استفاده می‌کنیم. در واقع ماتریس در پایتون به صورت لیستی از لیست‌ها نوشته می‌شود. پایتون با این روش به برنامه نویسان کمک می‌کند که به شکل عملی و کاربردی بر روی ماتریس‌ها کار بکنند. محبوبیت و همه کاره بودن پایتون، این زبان را به گزینه خوبی برای ساخت ماتریس‌ها تبدیل کرده است. زیرا اکوسیستم غنی این زبان از ابزارها و کتابخانه‌های بسیار متنوع و قدرتمندی تشکیل شده است.

در کادر زیر ماتریس ساده‌ای را پیاده‌سازی کرده‌ایم.

شکل بالا، یک ماتریس ۳×۳ را نشان می‌دهد. این ماتریس از ۳ سطر و ۳ ستون تشکیل شده است. با استفاده از اندیس‌های موجود در لیست‌ها می‌توانیم به تمام عناصر تشکیل دهنده ماتریس در پایتون به صورت مستقل دسترسی داشته باشیم. برای مثال، عبارت

matrix[1][2]  در ماتریس بالا به عنصری اشاره می‌کند که در ردیف دوم و ستون سوم (یعنی عدد 5 ) قرار دارد.

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

برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.

انعطاف‌پذیری پایتون در مدیریت ماتریس‌ها این زبان را به گزینه بسیار خوبی برای کار توسط افراد مبتدی و حرفه‌ای تبدیل کرده است. در فهرست زیر، رایج‌ترین روش‌های تعریف ماتریس در پایتون را معرفی کرده‌ایم.

  • ساخت ماتریس به صورت لیستی از لیست‌ها
  • ساختن ماتریس با کمک داده‌های وارد شده توسط کاربر
  • نحوه تعریف ماتریس در پایتون با کمک «List Comprehension»
  • استفاده از کتابخانه Numpy
چهار روش اصلی برای تعریف ماتریس در پایتون
چهار روش اصلی برای تعریف ماتریس در پایتون

هر کدام از روش‌های بالا نوع خاصی از نحوه تعریف ماتریس در پایتون هستند و از الگوریتم متفاوتی پیروی می‌کنند.

روش ساخت ماتریسویژگی ساده
لیست‌های تو در توساده و مناسب مبتدیان
دریافت داده از کاربرمناسب برنامه‌های پویا
List Comprehensionکوتاه و تمیز برای کدنویسی
NumPyسریع و مناسب محاسبات علمی

در ادامه مطلب،‌ تمام این روش‌ها را یک به یک بررسی کرده و برای هر کدام مثال‌های ساده‌ای می‌زنیم.

نحوه تعریف ماتریس در پایتون با لیست‌های تو در تو

این روش کاملا شهودی بوده و گزینه بسیار مناسبی برای افراد مبتدی و تازه کار است. در این رویکرد، هر کدام از لیست‌های درونی نشان‌دهنده یک ردیف هستند. بنابرین خیلی راحت‌تر می‌توانیم ساختار منطقی ماتریس را به تصویر بکشیم. در این روش، برنامه نویس خیلی ساده داده‌های موجود در سطر‌ها و ستون‌های ماتریس را تشخیص می‌دهد.

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

در کادر پایین، ماتریسی را به صورت لیستی از لیست‌های پایتون تعریف کرده‌ایم.

در کادر بالا هر کدام از لیست‌های درونی [1, 2, 3]  و [4, 5, 6]  و [7, 8, 9]  نشان دهنده یک ردیف از ماتریس هستند. این لیست‌ها در کنار همدیگر ساختار ماتریس دوبعدی ۳×۳ را تشکیل می‌دهند.

یادگیری پایتون با کمک فیلم‌ های فرادرس

در بین زبان‌های برنامه‌نویسی، پایتون یکی از بهترین گزینه‌ها برای توسعه نرم‌افزارهای مدرن و پیچیده است. سینتکس پایتون به زبان انسان (البته به زبان انگلیسی) نزدیک است. بنابراین فرایند یادگیری و استفاده از این زبان هم برای افراد آشنا به انگلیسی کار بسیار ساده‌ای است. آموزش مهارت‌های برنامه‌نویسی پایتون جزو بهترین گزینه‌ها برای اشخاص علاقه‌مند به شغل‌های برنامه‌نویسی است. در ضمن، با افزایش مهارت، یادگیری زبان‌ پایتون به مرور جذاب‌تر و کاربردی‌تر نیز می‌شود. یکی از مقرون‌به‌صرفه‌ترین و کار‌بردی‌ترین روش‌ها برای یادگیری پایتون، استفاده از فیلم‌های آموزشی است.

مجموعه آموزش برنامه نویسی پایتون Python – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی پایتون Python از مقدماتی تا پیشرفته هدایت شوید.

فرادرس به شکل تخصصی به تولید فیلم‌های آموزشی می‌پردازد. زبان پایتون هم یکی از گزینه‌های بسیار مهم در سبد محصولات آموزشی فرادرس است. برای آموزش زبان پایتون در حد ابتدایی می‌توانید، فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه را از فرادرس مشاهده کنید. اما اگر دوره‌های اولیه این زبان را گذرانده‌اید، پیشنهاد می‌کنیم از فیلم‌های مربوط به مفاهیم پیشرفته دیدن کنید. با مشاهده و تمرین همراه با این فیلم‌ها مهارت‌های برنامه نویسی خودتان را تا حد قابل قبول برای بازار کار بالا می‌‌برید.

در پایین فیلم‌های آموزشی دیگری را معرفی کرده‌ایم که برای آموزش سطوح پیشرفته‌تر برنامه‌نویسی مفید هستند.

در ادامه مطلب، روش ساخت ماتریس با کمک داده‌های وارد شده توسط کاربران را بررسی می‌کنیم.

ساختن ماتریس با داده‌های وارد شده توسط کاربر

این تکنیک، گزینه بسیار خوبی برای پیاده‌سازی سناریو‌های پویا است. در این روش، داده‌های مربوط به ماتریس به کمک تعامل با کاربر تولید می‌شوند.

در کادر پایین، نمونه‌ برنامه‌ای را نوشته‌ایم که مرحله به مرحله از کاربر داده دریافت کرده و ماتریس را می‌‌سازد.

بعد از اجرای برنامه بالا، مفسر پایتون خروجی زیر را نمایش می‌دهد. در واقع این برنامه، چهار بار از کاربر می‌خواهد که عناصر مختلف ماتریس را وارد بکند. اعداد وارد شده در پایین توسط خود ما و به صورت دلخواه نوشته شده‌اند.

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) بسیار مهم است.

۹ مستطیل برای نمایش سلول‌های ماتریس ۳×۳ و کمی کد پایتون
در حلقه‌های for تو در تو معمولا از i برای نمایش سطر‌ها و j برای نمایش ستون‌ها استفاده می‌شود. البته توجه کنید که این یک قرار داد است و رعایت آن اجباری نیست.

روش اول: دسترسی مستقیم به مقادیر ماتریس

بهترین و ساده‌ترین روش برای دسترسی به سلول‌های ماتریس استفاده صریح از شماره اندیس‌های هر سلول است.

در روش بالا با مشخص کردن مستقیم شماره ردیف و ستون به سلول مورد نظر در ماتریس دسترسی پیدا کرده‌ایم. در مثال بالا عدد 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]

ساختار منطقی کدهای بالا را در فهرست پایین توضیح داده‌ایم.

  1. در این کدها ابتدا ماتریسی به نام matrix  برای ذخیره کردن داده‌های اولیه تعریف کرده‌ایم.
  2. سپس ماتریس transpose_matrix  را با هدف دخیره کردن داده‌های جابه‌جا شده از ماتریس اصلی تعریف می‌کنیم.
  3. با کمک دو حلقه for  به صورت تو در تو ماتریس اصلی را پیمایش می‌کنیم.
  4. در مدت پیمایش این ماتریس به هر عنصری که می‌رسیم آن را در جایگاه جدید خودش در ماتریس transpose_matrix  قرار می‌دهیم. با انجام این عملیات و پایان پیمایش ماتریس اصلی توسط حلقه‌های تو در تو در نهایت ماتریس transpose_matrix  به صورت ترانهاده شده ماتریس matrix  ساخته می‌شود.

یادگیری پایتون همراه با پیاده سازی پروژه های عملی

فرادرس یکی از بزرگ‌ترین و حرفه‌ای‌ترین تولیدکنندگان فیلم‌های آموزشی به زبان فارسی است. در تمام رشته‌های علمی، صنعتی، تحصیلی و غیره فیلم‌های آموزشی بسیار با کیفیتی توسط فرادرس تولید و منتشر شده‌اند. زبان برنامه‌نویسی پایتون هم یکی از پرطرفدارترین زبان‌های مورد استفاده در دنیاست. بنابراین افراد زیادی خواستار دسترسی به دوره‌های آموزشی آن هستند. در نتیجه فرادرس سعی کرده است تا بهترین فیلم‌های آموزشی پایتون را تولید و منتشر کند. آموزش همراه با اجرای پروژه‌های رایج در دنیای واقعی یکی از روش‌های بسیار خوب برای یادگیری برنامه‌نویسی است. به همین جهت در فرادرس فیلم‌های آموزشی پروژه محور زیادی در ارتباط با زبان‌ برنامه‌نویسی پایتون تهیه شده‌اند.

در پایین، چند مورد فیلم‌ آموزشی پروژه‌محور زبان پایتون را معرفی کرده‌ایم.

در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و از فیلم‌های پروژه‌محور بیشتری دیدن کنید.

مجموعه آموزش پروژه محور برنامه نویسی پایتون (Python)
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه محور برنامه نویسی پایتون هدایت شوید.

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

در کادر پایین، روش استفاده از 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 در پایتون
توابع مورد استفاده برای حذف سطر‌ها و ستون‌ها با کمک NumPy در پایتون

اضافه کردن ردیف یا ستون به ماتریس

یکی از رایج‌ترین عملیات مربوط به ماتریس‌ها گسترش آن‌هاست. برای گسترش ماتریس به آن سطر یا ستون اضافه می‌کنند. 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()  کمک می‌گیریم.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
SCALER
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *