logo

numpy.reshape() ב-Python

הפונקציה numpy.reshape() זמינה בחבילת NumPy. כפי שהשם מרמז, צורה מחדש פירושה 'שינויים בצורה'. הפונקציה numpy.reshape() עוזרת לנו לקבל צורה חדשה למערך מבלי לשנות את הנתונים שלו.

לפעמים, אנחנו צריכים לעצב מחדש את הנתונים מרחבים לארוכים. אז במצב זה, עלינו לעצב מחדש את המערך באמצעות הפונקציה reshape() .

תחביר

 numpy.reshape(arr, new_shape, order='C') 

פרמטרים

ישנם הפרמטרים הבאים של הפונקציה reshape():

1) arr: array_like

זהו נדארי. זהו מערך המקור אותו אנו רוצים לעצב מחדש. פרמטר זה חיוני וממלא תפקיד חיוני בפונקציה numpy.reshape() .

מחרוזת ל-char java

2) new_shape: int או tuple of ints

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

3) סדר: {'C', 'F', 'A'}, אופציונלי

פרמטר סדר האינדקסים הזה ממלא תפקיד מכריע בפונקציה reshape() . סדרי אינדקס אלו משמשים לקריאת האלמנטים של מערך המקור ולהצבת האלמנטים לתוך המערך המעוצב מחדש באמצעות סדר אינדקס זה.

  1. סדר האינדקס 'C' פירושו לקרוא/לכתוב את האלמנטים המשתמשים בסדר אינדקס דמוי C שבו אינדקס הציר האחרון משתנה הכי מהר, חזרה לאינדקס הציר הראשון שמשתנה הכי איטי.
  2. סדר האינדקס 'F' פירושו לקרוא/לכתוב את האלמנטים המשתמשים בסדר האינדקס דמוי Fortran, כאשר אינדקס הציר האחרון משתנה לאט ביותר ואינדקס הציר הראשון משתנה הכי מהר.
  3. סדר ה-'C' וה-'F' אינו לוקח כמות מפריסת הזיכרון של המערך הבסיסי ומתייחסים רק לסדר האינדקס.
  4. סדר האינדקס 'A' פירושו לקרוא/לכתוב את האלמנטים בסדר אינדקס דמוי Fortran, כאשר arr רציף בזיכרון, אחרת השתמש בסדר דמוי C.

החזרות

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

דוגמה 1: סדר אינדקס דמוי C

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

תְפוּקָה:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

בקוד למעלה

  • ייבאנו numpy עם שם הכינוי np.
  • יצרנו מערך 'a' באמצעות הפונקציה np.arrange() .
  • הכרזנו על המשתנה 'y' והקצנו את הערך המוחזר של הפונקציה np.reshape() .
  • עברנו את המערך 'x' ואת הצורה בפונקציה.
  • לבסוף, ניסינו להדפיס את הערך של arr.

בפלט, המערך מיוצג כשלוש שורות וארבע עמודות.

דוגמה 2: שווה ערך ל-C ravel ואז C reshape

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

הפונקציה ravel() משמשת ליצירת מערך שטוח רציף. מוחזר מערך חד מימדי המכיל את רכיבי הקלט. עותק נעשה רק כאשר יש צורך בכך.

1 מיליארד למיליון

תְפוּקָה:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

דוגמה 3: סדר אינדקס דמוי Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

תְפוּקָה:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

בקוד למעלה

  • ייבאנו numpy עם שם הכינוי np.
  • יצרנו מערך 'a' באמצעות הפונקציה np.arrange() .
  • הכרזנו על המשתנה 'y' והקצנו את הערך המוחזר של הפונקציה np.reshape() .
  • עברנו את המערך 'x' ואת הצורה וסדר האינדקס דמוי Fortran בפונקציה.
  • לבסוף, ניסינו להדפיס את הערך של arr.

בפלט, המערך מיוצג כארבע שורות ושלוש עמודות.

דוגמה 4: סדר אינדקס דמוי Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

תְפוּקָה:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

דוגמה 5: הערך הלא מוגדר הוא 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

בקוד למעלה

  • ייבאנו numpy עם שם הכינוי np.
  • יצרנו מערך 'a' באמצעות הפונקציה np.arrange() .
  • הכרזנו על המשתנה 'y' והקצנו את הערך המוחזר של הפונקציה np.reshape() .
  • עברנו את המערך 'x' ואת הצורה (ערך לא מוגדר) בפונקציה.
  • לבסוף, ניסינו להדפיס את הערך של arr.

בפלט, המערך מיוצג כשתי שורות וחמש עמודות.

תְפוּקָה:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])