אינדוקס בוליאני
שיעור 14 מתוך 18 בקורס יסודות NumPy של Coddy.
ל-Numpy יש אפשרות לבחור איברים באמצעות תנאים.
יש להשתמש בתחביר הבא: ary[ary operator number]
ary[ary > 5]ary[ary == 5]ary[ary <= 5]- וכו׳
דוגמה 1
אחזר את כל המספרים הקטנים מ-5
x = np.array([1, 5, 2, 4, 9 ,10 ,13, 7])
x[x < 5]
>>> [1, 2, 4]דוגמה 2
מה קורה בממדים גבוהים יותר?
x = np.array([[1, 5], [2, 4], [9 ,10] ,[13, 7]])
x[x < 5] # --> [1, 2, 4]
x[x >= 5] # --> [5, 9, 10, 13, 7]
x[x == 6] # --> []ראית את זה? הוחזר מערך יחיד עם כל האיברים שמקיימים את התנאי
כשמחילים תנאי על x, מוחזר מערך boolean שמציין עבור כל אינדקס אם הוא מקיים את התנאי.
דוגמה 3
הפעם נבדוק מה קורה אם משתמשים בתנאי בלבד, בלי הסוגריים []
x = np.array([1, 2, 3])
x < 2
>>> [True, False, False]מוחזרת רשימה של כל האינדקסים שמקיימים את התנאי
דוגמה 4
במקום להציב תנאי בתוך הסוגריים [], אפשר להציב במקומו רשימה בוליאנית, בדיוק כמו זו שקיבלנו בדוגמה הקודמת, כדי לאחזר את האיברים הרצויים.
x = np.array([8, 4, 10])
x[[False, True, False]] # --> [4]
x[[True, True, False]] # --> [8, 4]
x[[True, False, True]] # --> [8, 10]
x[[False, False, False]] # --> []
דוגמאות 3 ו-4 מסבירות למה x[x < 5] עובד.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
אתגר
קלכתבו פונקציה בשם small_five שמקבלת רשימה ומחזירה את הסכום של כל האיברים שקטנים מ־5
נסו בעצמכם
import numpy as np
def small_five(lst):
# Complete your codeכל השיעורים ביחידה יסודות NumPy
3אינדוקס מערך NumPy
אינדוקס בסיסיחיתוךאינדוקס מערכיםאינדוקס לפי ממדיםאינדוקס בוליאניאינדוקס לפי תנאים מרוביםתרגלו בעצמכם: קומפיילר Python אונליין