İndeksleme, Dilimleme ve Gelişmiş İndeksleme
Gelişmiş indeksleme teknikleriyle dizi öğelerine erişin ve bunları değiştirin.
İndeksleme, Dilimleme ve Gelişmiş İndeksleme, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Temel Dizinleme
Öğelere sıfır tabanlı tamsayı dizinleriyle erişin. Negatif dizinler sondan başlayarak sayar. Çok boyutlu dizilerde virgülle ayrılmış dizinler kullanılır.
import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr[0, 2]) # 3
print(arr[-1, -1]) # 9
print(arr[1]) # [4 5 6]Dilimleme
start:stop:step dilimleme söz dizimi bir görünüm döndürür. Her boyuta bağımsız olarak uygulanır.
import numpy as np
m = np.arange(16).reshape(4,4)
print(m[1:3, 1:3])
# [[5 6]
# [9 10]]
print(m[::2, ::2]) # every other row and columnBoole Dizinleme (Maskeleme)
True olan öğeleri seçmek için aynı şekle sahip bir boole dizisi geçirin.
import numpy as np
arr = np.array([1, -2, 3, -4, 5])
mask = arr > 0
print(mask) # [ True False True False True]
print(arr[mask]) # [1 3 5]
arr[~mask] = 0 # set negatives to 0
print(arr) # [1 0 3 0 5]Tamsayı Dizileriyle Gelişmiş Dizinleme
Birden çok belirli öğeyi seçmek için tamsayı dizinlerinden oluşan bir dizi geçirin.
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
idx = np.array([0, 2, 4])
print(arr[idx]) # [10 30 50]
# 2-D fancy indexing:
m = np.arange(9).reshape(3,3)
print(m[[0,2], [0,2]]) # [m[0,0], m[2,2]] = [0, 8]Dizinlenmiş Seçim için np.where
np.where(condition) (tek bağımsız değişkenle), koşulun True olduğu dizinleri döndürür.
import numpy as np
arr = np.array([5, 2, 8, 1, 9])
idx = np.where(arr > 4)[0]
print(idx) # [0 2 4]
print(arr[idx]) # [5 8 9]np.take ve np.put
np.take(arr, indices) öğeleri seçer (düz dizinlemeyi destekler). np.put(arr, indices, values) değerleri ekler.
import numpy as np
arr = np.array([10, 20, 30, 40])
print(np.take(arr, [1, 3])) # [20 40]
np.put(arr, [0, 2], [99, 88])
print(arr) # [99 20 88 40]np.nonzero
np.nonzero(arr), sıfır olmayan öğelerin dizinlerini içeren bir demet dizi döndürür — her boyut için bir dizi.
import numpy as np
arr = np.array([[0,1,0],[2,0,3]])
rows, cols = np.nonzero(arr)
print(rows, cols) # [0 1 1] [1 0 2]Üç Nokta ile Dizinleme
... (Ellipsis), kalan boyutları kapsamak için gerektiği kadar : ifadesine genişler.
import numpy as np
arr = np.ones((2,3,4,5))
print(arr[0, ..., 2].shape) # (3, 4) — first dim=0, last dim=2
print(arr[..., 0].shape) # (2, 3, 4) — last dim=0Dış Dizinleme için np.ix_
np.ix_, dış çarpım tarzı gelişmiş dizinleme için birden çok 1 boyutlu diziden açık bir ızgara oluşturur.
import numpy as np
m = np.arange(25).reshape(5,5)
rows = [0, 2, 4]
cols = [1, 3]
print(m[np.ix_(rows, cols)])
# [[ 1 3]
# [11 13]
# [21 23]]Gelişmiş Dizine Atama
Gelişmiş dizinlenmiş bir seçime yerinde atama yapabilirsiniz.
import numpy as np
arr = np.zeros(5)
arr[[1, 3]] = [10, 20]
print(arr) # [ 0. 10. 0. 20. 0.]
# Broadcast a scalar:
arr[[0, 2, 4]] = 99
print(arr) # [99. 10. 99. 20. 99.]Dizinlemede Fark: Görünüm ve Kopya
Temel/dilim dizinleme → görünüm (değiştirmek özgün diziyi değiştirir). Gelişmiş/boole dizinleme → kopya (değiştirmek özgün diziyi DEĞİŞTİRMEZ).
import numpy as np
arr = np.arange(5)
view = arr[1:4] # view
view[0] = 99
print(arr) # [0 99 2 3 4]
copy = arr[[1,2,3]] # fancy → copy
copy[0] = 0
print(arr) # unchangedHızlı Kontrol
Boole/gelişmiş dizinleme bir görünüm mü, yoksa kopya mı döndürür?
Özet
Tek tek öğeler için [row, col], dilimler için start:stop:step (görünümler), maskeleme için boole dizileri (kopyalar) ve gelişmiş dizinleme için tamsayı dizileri (kopyalar) kullanın. Dizinleri almak için np.where, dış ızgaralar için np.ix_ kullanın.
Sıkça Sorulan Sorular
“İndeksleme, Dilimleme ve Gelişmiş İndeksleme” dersi ücretsiz mi?
Evet — “İndeksleme, Dilimleme ve Gelişmiş İndeksleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“İndeksleme, Dilimleme ve Gelişmiş İndeksleme” dersinde ne öğreneceğim?
Gelişmiş indeksleme teknikleriyle dizi öğelerine erişin ve bunları değiştirin. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“İndeksleme, Dilimleme ve Gelişmiş İndeksleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- NumPy Dizileri ve dtypes
- Dizi İşlemleri ve Yayınlama
- İndeksleme, Dilimleme ve Gelişmiş İndeksleme
- NumPy ile Doğrusal Cebir