یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی با تخفیف ویژه، فقط با کد AI84 دوره هوش مصنوعی با تخفیف ویژه، فقط با کد AI84
🎯 ثبت نام
بستن تبلیغات
دوره تسلط بر پایتون ؛ آموزش پروژه محور برای حرفه ای ها

با آموزش حضوری و آنلاین مقدماتی تا پیشرفته پایتون , محبوب‌ترین زبان برنامه‌نویسی دنیا در محیطی عملی کاربردی و پروژه محور وارد دنیای برنامه نویسی شوید

مشاهده بیشتر
دوره آموزش ماشین لرنینگ

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

مشاهده بیشتر
یادگیری عمیق از پایه تا پیشرفته، همراه با پروژه‌های واقعی!

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

مشاهده بیشتر
دوره پروژه محور آموزش جنگو

با این دوره، Django رو از پایه شروع کن و به یک حرفه‌ای تبدیل شو! یاد بگیر چطور با معماری MVT، پایگاه داده و RESTful API کار کنی، پروژه‌های واقعی بسازی و آن‌ها رو روی وب سرور مستقر کنی!

مشاهده بیشتر

ضرب دو ماتریس در پایتون

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

قبل از نوشتن برنامه پایتون، بیایید ابتدا یک نگاهی به مرور ضرب دو ماتریس بیندازیم.

ضرب ماتریس ها:

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

مثال: فرض کنید دو ماتریس A و B به شکل زیر داده شده باشد:
A = [[5, 4, 3]  
         [2, 4, 6]  
         [4, 7, 9]]  
and, B = [[3, 2, 4]  
                  [4, 3, 6]  
                  [2, 7, 5]]  
C نتیجه جمع دو ماتریس فوق می‌باشد، یعنی C = A + B، و بنابراین ماتریس C باید به صورت زیر باشد:
C = [[5*3 + 4*4 + 3*2, 5*2 + 4*3 + 3*7, 5*4 + 4*6 + 3*5]    
       [2*3 + 4*4 + 6*2, 2*2 + 4*3 + 6*7, 2*4 + 4*6 + 6*5]    
       [4*3 + 7*4 + 9*2, 4*2 + 7*3 + 9*7, 4*4 + 7*6 + 9*5]]    
C = [[37, 43, 59]    
       [34, 58, 62]    
       [58, 92, 103]]    

همانطور که مشاهده می‌شود، ماتریس حاصل C که به عنوان حاصلضرب ماتریس نیز شناخته می‌شود، تعداد سطرهای یکسانی با ماتریس اول (ماتریس A) و تعداد ستون های یکسانی با ماتریس دوم (ماتریس B) دارد. همچنین این نوع ضرب ماتریس را به عنوان ضرب نقطه‌ای ماتریس‌ها می‌شناسیم.

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

  • ۱. استفاده از روش حلقه‌های تو در تو (nested for loop)
  • ۲. استفاده از روش تشکیل لیست درونی (nested list comprehension)

در هر دو روش، یک برنامه نمونه را خواهیم نوشت تا پیاده‌سازی آنها برای ضرب دو ماتریس را درک کنیم.


روش ۱: استفاده از روش حلقه‌های تو در تو (nested for loop):

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

# Matrix multiplication using nested for loop  
# Initialize the value of A and B matrix    
A = [[5, 4, 3],    
     [2, 4, 6],    
     [4, 7, 9]]      
B = [[3, 2, 4],    
     [4, 3, 6],    
     [2, 7, 5]]     
# Define an empty matrix to store multiplication result    
multiResult = [[0, 0, 0],      
               [0, 0, 0],      
               [0, 0, 0]]    
# Using nested for loop method on A & B matrix    
for m in range(len(A)):      
   for n in range(len(B[0])):      
          for o in range(len(B)):      
               multiResult[m][n] += A[m][o] * B[o][n] # Storing multiplication result in empty matrix    
# Printing multiplication result in the output    
print("The multiplication result of matrix A and B is: ")    
for res in multiResult:      
   print(res)    
خروجی
The multiplication result of matrix A and B is: 
[37, 43, 59]
[34, 58, 62]
[58, 92, 103]
مثال
# Matrix multiplication using nested for loop  
# Initialize the value of the a and b matrix    
a = [[1,2,3],  
        [4,5,6],  
        [7,8,9]]  
b = [[0,0,1],  
       [0,1,0],  
       [1,0,0]]  
res = [[0,0,0],  
         [0,0,0],  
         [0,0,0]]  
for i in range(len(a)):  
   for j in range(len(b[0])):  
       for k in range(len(b)):  
           res[i][j] += a[i][k] * b[k][j]  
for r in res:  
   print(r)  
خروجی
[3, 2, 1]
[6, 5, 4]
[9, 8, 7]

روش ۲: استفاده از روش تشکیل لیست درونی (nested list comprehension):

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

# Matrix multiplication using nested for loop  
# Initialize the value of the A and B matrix    
A = [[1,2,3],  
        [4,5,6],  
        [7 ,8,9]]  
B = [[0,0,1],  
       [0,1,0],  
       [1,0,0]]  
# Using nested list method with zip in Python    
multiResult = [[sum(a * b for a, b in zip(Arow, Bcol))     
                       for Bcol in zip(*B)]    
                                for Arow in A]    
# Printing multiplication result in the output    
print("The multiplication result of matrix A and B is: ")    
for res in multiResult:    
    print(res)    
خروجی
The multiplication result of matrix A and B is: 
[3, 2, 1]
[6, 5, 4]
[9, 8, 7]

1403/05/28 2351
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...