Menu
Coddy logo textTech

אינדוקס מערכים

שיעור 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]  # --> 6
  • x[1, -1] # --> 11
  • x[2, 0]  # --> 12
  • x[2, -1] # --> 17

איך מקבלים מכל השורות את האינדקס הראשון והאחרון?

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

challenge icon

אתגר

קל

בהינתן מערך דו־ממדי 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

תרגלו בעצמכם: קומפיילר Python אונליין