logo

numpy.argsort() ב-Python

המודול NumPy מספק פונקציה argsort(), מחזיר את המדדים שימיינו מערך.

מודול NumPy מספק פונקציה לביצוע מיון עקיף יחד עם הציר הנתון בעזרת האלגוריתם שצוין במילת המפתח. פונקציה זו מחזירה מערך של מדדים באותה צורה כמו 'a', שימיין את המערך.

תחביר

 numpy.argsort(a, axis=-1, kind=None, order=None) 

פרמטרים

אלו הם הפרמטרים הבאים בפונקציה numpy.argsort():

מיון ברשימה ב-java

a: array_like

פרמטר זה מגדיר את מערך המקור אותו אנו רוצים למיין.

ציר: int או None (אופציונלי)

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

סוג: {'quicksort','mergesort','heapsort','stable'}(אופציונלי)

פרמטר זה מגדיר את אלגוריתם המיון. כברירת מחדל, האלגוריתם הוא מיון מהיר . שניהם mergesort ו יַצִיב משתמשים במיון זמן מתחת לשמיכה. היישום בפועל ישתנה בהתאם לסוג הנתונים. ה mergesort האפשרות נשמרת עבור תאימות לאחור.

סדר: str או רשימה של str(אופציונלי)

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

צומת רשימת java

מחזירה: index_array: ndarray, int

פונקציה זו מחזירה מערך של מדדים הממיינים 'a' יחד עם הציר שצוין. אם 'a' הוא 1-D, a[index_array] מניב 'a' ממוין. יותר כללי, np.take_along_axis(arr1, index_array, axis=axis) תמיד מניב את ה-a הממוין, ללא קשר למימדיות.

דוגמה 1: np.argsort()

 import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b 

בקוד למעלה

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

בפלט, הוצג ndarray המכיל את המדדים (מציין את מיקום האלמנט עבור המערך הממוין) ו-dtype.

תְפוּקָה:

 array([456, 11, 63]) array([1, 2, 0], dtype=int64) 

דוגמה 2: עבור מערך דו-ממדי (ממיין לאורך הציר הראשון (למטה))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices 

תְפוּקָה:

מערך הדפסה ב-java
 array([[0, 1], [1, 0]], dtype=int64) 

דוגמה 3: עבור מערך דו-ממדי (חלופה של ציר=0)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices np.take_along_axis(a, indices, axis=0) 

בקוד למעלה

  • ייבאנו numpy עם שם הכינוי np.
  • יצרנו מערך דו-ממדי 'a' באמצעות פונקציית np.array() .
  • הכרזנו על מדדי משתנים והקצנו את הערך המוחזר של הפונקציה np.argsort() .
  • עברנו את המערך הדו-ממדי 'a' ואת הציר כ-0.
  • לאחר מכן, השתמשנו בפונקציה take_along_axis() ועברנו את מערך המקור, המדדים והציר.
  • פונקציה זו החזירה את המערך הדו-ממדי הממוין.

בפלט, הוצג מערך דו-ממדי עם אלמנטים ממוינים.

תְפוּקָה:

 array([[0, 2], [3, 5]]) 

דוגמה 4: עבור מערך דו-ממדי (ממיין לאורך הציר האחרון (לרוחב))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices 

תְפוּקָה:

 array([[0, 1], [1, 0]], dtype=int64) 

דוגמה 5: עבור מערך דו-ממדי (חלופה של ציר=1)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices np.take_along_axis(a, indices, axis=1) 

תְפוּקָה:

 array([[0, 2], [3, 5]]) 

דוגמה 6: עבור מערך N-D

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.unravel_index(np.argsort(a, axis=None), a.shape) indices a[indices] # same as np.sort(a, axis=None) 

תְפוּקָה:

 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

בקוד למעלה

  • ייבאנו numpy עם שם הכינוי np.
  • יצרנו מערך דו-ממדי 'a' באמצעות פונקציית np.array() .
  • הכרזנו על משתנה 'מדדים' והקצנו את הערך המוחזר של הפונקציה np.unravel_index() .
  • עברנו את הפונקציה והצורה np.argsort() של המערך 'a'.
  • עברנו את המערך הדו-ממדי 'a' ואת הציר כ-1 בפונקציה argsort() .
  • לאחר מכן, ניסינו להדפיס את הערך של מדדים ו-a[מדדים].

בפלט, הוצג מערך N-D עם אלמנטים ממוינים.

מחסנית ב-java

דוגמה 7: מיון עם מפתחות

 import numpy as np a= np.array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="(&apos;x&apos;,&apos;y&apos;))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) array([0, 1], dtype="int64)" array([1, 0], < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created a 2-D array &apos;a&apos; using np.array() function with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')].< li> <li>We have declared the variables &apos;b&apos; and &apos;c&apos; and assigned the returned value of np.argsort() function.</li> <li>We have passed the array &apos;a&apos; and order as an argument in the function.</li> <li>Lastly, we tried to print the value of &apos;b&apos; and &apos;c&apos;.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>