נפתרה: מטמול קיצור numpy

מטריצות הן חלק בסיסי ממשימות חישוביות רבות בתחומים שונים, כולל מדעי נתונים, למידת מכונה וגרפיקה. ב-Python, הספרייה המספרית הפופולרית NumPy מספקת דרך נוחה לבצע כפל מטריצה ​​באמצעות פונקציית matmul. במאמר זה, נדון בקיצור ה-matmul ב-NumPy, הפונקציונליות שלו והטמעתו בקוד Python שלך.

מבוא למטריצות ו-NumPy

מטריצה ​​היא מערך דו מימדי של מספרים המאורגנים בשורות ובעמודות, שניתן להשתמש בהם כדי לייצג מגוון רחב של טרנספורמציות ליניאריות, מערכות של משוואות ליניאריות ותמרות גיאומטריות. ב-Python, ספריית NumPy מציעה סט עשיר של פונקציות ליצירה והפעלה על מטריצות ביעילות.

רדום היא ספריית Python רבת עוצמה וקוד פתוח המספקת תמיכה לעבודה עם מערכים ומטריצות גדולות ורב-ממדיות. הוא מציע גם אוסף של פונקציות מתמטיות לביצוע פעולות על מערכים אלה, כגון כפל מטריצה, שהיא פעולת ליבה ביישומים רבים.

מטריצת כפל ומטמול

כפל מטריצה ​​היא פעולה בינארית שלוקחת זוג מטריצות ומייצרת מטריצה ​​נוספת כתוצאה ממנה. הוא מוגדר כסכום המכפלה של רכיבים תואמים של שורות מהמטריצה ​​הראשונה ועמודות מהמטריצה ​​השנייה.

אל האני מטמול הפונקציה ב-NumPy משמשת לכפל מטריצה. זה לוקח שני מערכי קלט ומחזיר את תוצר המטריצה ​​שלהם. אם מערכי הקלט אינם מטריצות, הם מטופלים כמטריצות כאשר שני הממדים האחרונים שלהם מייצגים את השורות והעמודות.

import numpy as np

matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])

result = np.matmul(matrix1, matrix2)
print(result)

בדוגמה זו, הפונקציה לוקחת שתי מטריצות 2×2 כקלט ומחזירה את המוצר שלהן. התוצאה שתתקבל תהיה מטריצה ​​של אותם ממדים.

הסבר שלב אחר שלב

להלן הסבר שלב אחר שלב של דוגמה לקוד הכפל המטריצה ​​שסופקה לעיל:

1. ייבא את ספריית numpy באמצעות הקיצור "np".
2. הגדר שתי מטריצות (2×2 במקרה זה) באמצעות פונקציית המערך של numpy.
3. בצע כפל מטריצה ​​באמצעות הפונקציה numpy matmul, מתן מטריקס1 ומטריצה2 כארגומנטים.
4. הדפס את המטריצה ​​שהתקבלה.

הפלט עבור דוגמה זו יהיה:

[[19 22]
 [43 50]]

מתמול מאפיינים ומגבלות

באופן כללי, כפל מטריצה ​​אינו מספק תכונות מתמטיות מסוימות כגון קומוטטיביות, אך הוא ממלא תכונות כמו אסוציאטיביות וחלוקה. לממדים של מטריצות הקלט תפקיד מכריע בכפל המטריצה ​​- מספר העמודות במטריצה ​​הראשונה חייב להיות שווה למספר השורות במטריצה ​​השנייה.

אם מטריצות הקלט אינן עומדות בדרישות הממדיות הללו, א ValueError יועלו. ראוי גם לציין שלמרות שפונקציית matmul יכולה להתמודד עם מערכים רב-ממדיים, תוצר המטריצה ​​מוגדר רק עבור מטריצות דו-ממדיות.

פונקציות חלופיות לכפל מטריצה

מלבד פונקציית matmul, NumPy מספקת שיטות קיצור אחרות לכפל מטריצה:

1. np.dot: פונקציה זו יכולה גם לבצע כפל מטריצה ​​אך היא כללית יותר, מכיוון שהיא יכולה להתמודד גם עם מוצרים פנימיים, מוצרים חיצוניים ומוצרי טנזור.
2. מפעיל @: ב- Python 3.5 ואילך, ניתן להשתמש בסמל @ כאופרטור אינפיקס עבור כפל מטריצה.

result_alternative1 = np.dot(matrix1, matrix2)
result_alternative2 = matrix1 @ matrix2

שיטות חלופיות אלו יניבו את אותה תוצאה כמו פונקציית matmul.

לסיכום, הקיצור של matmul ב-NumPy מספק דרך יעילה ורב-תכליתית לבצע כפל מטריצה ​​ב-Python. הבנת הפונקציה החזקה הזו והשימוש בה יכולה לשפר משמעותית את ביצועי הקוד שלך ביישומים שונים.

הודעות קשורות:

השאירו תגובה