CodeBlanks Logo Icon CodeBlanks

Dizi indeksleme

NumPy dizilerinde elemanlara indeks ile erişilir; ilk eleman 0 indekslidir.

İndeks ve dilim

İki boyutlu dizide a[satır, sütun] yazılır. Dilimler Python listelerindeki gibidir; : "hepsi" demektir:

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
print(a[1, 2])     # 6
print(a[0])        # [1 2 3]  ilk satır
print(a[:, 1])     # [2 5 8]  ikinci sütun
print(a[:2, 1:])   # [[2 3] [5 6]]

ML'de X[:, 0] ile tek bir özellik sütunu almak çok sık yapılır.

Boolean maske

Bir koşul, aynı boyutta True/False dizisi üretir. Bu dizi indeks olarak verilince yalnızca koşulu sağlayanlar seçilir:

x = np.array([5, -2, 8, -1, 3])
print(x > 0)        # [ True False  True False  True]
print(x[x > 0])     # [5 8 3]
x[x < 0] = 0        # negatifleri sıfırla
print(x)            # [5 0 8 0 3]

Birden çok koşul & (ve) ile | (veya) kullanılarak birleştirilir; her koşul paranteze alınmalıdır.

Uygulama Filtrele

notlar dizisinden 50 ve üzerindeki notları boolean maske ile seç ve yazdır; ardından bunların sayısını yazdır.

Başlangıç kodu

model.py
import numpy as np

notlar = np.array([45, 78, 50, 32, 91, 66])

# buraya yaz

Örnek çözüm

model.py
import numpy as np

notlar = np.array([45, 78, 50, 32, 91, 66])

gecen = notlar[notlar >= 50]
print(gecen)
print(len(gecen))

Beklenen çıktı

[78 50 91 66]
4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yukarıdaki <code>a</code> için <code>a[2, 0]</code> kaçtır?

  • 3
  • 8
  • 2
  • 7 Doğru cevap

Açıklama: Üçüncü satır (indeks 2), ilk sütun (indeks 0): 7.

2 Matrisin tüm satırlarından ilk sütunu al.

Soru
ilk = X[____]
Cevap
ilk = X[:, 0]

Açıklama: İlk konum satırları (:= hepsi), ikinci konum sütunu seçer.

3 İfadeleri seçtikleriyle eşleştir.

Kavram Anlamı
a[0] İlk satır
a[:, 0] İlk sütun
a[-1] Son satır
a[a > 5] Koşulu sağlayanlar

Başlangıç bölümündeki tüm dersler