אינדוקס מערכים
שיעור 12 מתוך 18 בקורס יסודות NumPy של Coddy.
תכונה נהדרת נוספת ב-Numpy היא היכולת לבחור אינדקסים מסוימים מתוך מערך. הצב List בתוך הסוגריים [] וציין אילו אינדקסים ברצונך לבחור: ary[indices]
דוגמה 1
אחזר את האיברים באינדקסים 0th, 2nd, 4th:
x = np.arange(5, 15) # np.array([5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
x[[0, 2, 4]]
>>> [5, 7, 9]דוגמה 2
אחזר את האיבר הראשון והאחרון (אבל הפעם מתוך מערך דו־ממדי)
x = np.array([[0, 1], [2, 3], [4, 5], [6, 7]])
x[[0, -1]]
>>> [[0, 1], [6, 7]]ומה לגבי שליפת איברים מסוימים מתוך מערך דו־ממדי?
נשתמש ב-ary[[Row indices], [Element indices]]
דוגמה 3
אחזר את האיבר הראשון והאחרון מהשורות 2nd ו-3rd
x = np.array([
[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23],
])
x[[1, 1, 2, 2], [0, -1, 0, -1]]
>>> [6, 11, 12, 17]מה קרה?
Numpy בודק את האינדקס המתאים בכל אחת מהרשימות שבתוך הסוגריים [] ומחזיר את האיבר:
x[[1, 1, 2, 2], [0, -1, 0, -1]]
x[1, 0] # --> 6x[1, -1] # --> 11x[2, 0] # --> 12x[2, -1] # --> 17
איך מקבלים מכל השורות את האינדקס הראשון והאחרון?
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
אתגר
קלבהינתן מערך דו־ממדי ary, יש לאחזר את כל המספרים שמתחלקים בחמש ללא שארית (0, 5, 10, ...) בעזרת השיטות שלמדנו בשיעור הזה.
נסו בעצמכם
import numpy as np
'''
ary looks like:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
'''
ary = np.arange(0, 20).reshape(4, 5) # don't change ary
res = ary[] # <-- Complete indices
print(str(res).replace("\n", "")) # don't change this lineכל השיעורים ביחידה יסודות NumPy
3אינדוקס מערך NumPy
אינדוקס בסיסיחיתוךאינדוקס מערכיםאינדוקס לפי ממדיםאינדוקס בוליאניאינדוקס לפי תנאים מרוביםתרגלו בעצמכם: קומפיילר Python אונליין