• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

NumPy dizisi alt parçalara nasıl bölünür?

  • Konuyu Başlatan Konuyu Başlatan Garfield
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 0
  • Etiketler Etiketler
    veri bilimi

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
Bir NumPy dizisini alt parçalara bölmek için en temel yöntem np.split() işlevidir. Dizi eşit büyüklükte bölünebiliyorsa np.split(dizi, parça_sayısı) kullanın; eşit bölünemeyen dizilerde ise np.array_split() gerekir. Sonuç, her biri dizinin bir bölümünü içeren NumPy dizilerinden oluşan bir listedir.

Eşit büyüklükte alt parçalara bölme​

np.split() dizinin belirtilen eksen boyunca eşit parçalara ayrılmasını ister. Örneğin 12 elemanlı bir diziyi 3 parçaya bölerseniz her parçada 4 eleman bulunur.

Python:
import numpy as np

dizi = np.arange(12)
parcalar = np.split(dizi, 3)

for parca in parcalar:
    print(parca)

Bu kodun çıktısı şöyledir:

Kod:
[0 1 2 3]
[4 5 6 7]
[ 8  9 10 11]

Sonuç doğrudan tek bir dizi değil, üç ayrı NumPy dizisi içeren bir listedir. Örneğin ilk parçaya parcalar[0], son parçaya parcalar[-1] ile erişebilirsiniz.

Eşit bölünemeyen dizileri ayırma​

Bir dizinin eleman sayısı parça sayısına tam bölünmüyorsa np.split() hata verir. Böyle durumlarda np.array_split() kullanılır. Bu işlev, parçaların boyutlarını mümkün olduğunca dengeli dağıtır.

Python:
import numpy as np

dizi = np.arange(10)
parcalar = np.array_split(dizi, 3)

for parca in parcalar:
    print(parca, parca.shape)

Varsayımsal bu örnekte çıktı şu biçimde olur:

Kod:
[0 1 2 3] (4,)
[4 5 6] (3,)
[7 8 9] (3,)

Burada 10 eleman 3 parçaya eşit dağıtılamadığı için ilk parça 4, diğer parçalar 3'er eleman içerir. Parçaların tam olarak aynı boyutta olması gerekiyorsa bu sonuç uygun değildir; o durumda eleman sayısını veya parça sayısını yeniden belirlemelisiniz.

split ve array_split arasındaki seçim​

Aşağıdaki ayrım hangi işlevi kullanmanız gerektiğini gösterir.
İşlevNe zaman kullanılır?Bölünemeyen uzunlukta davranış
np.split()Parçaların eşit boyutta olması gerektiğindeHata verir
np.array_split()Dizi mümkün olduğunca dengeli parçalara ayrılacaksaParça boyutlarını farklılaştırabilir
Bu nedenle veri kümelerini sabit boyutlu gruplara ayırırken önce toplam eleman sayısının parça sayısına tam bölünüp bölünmediğini kontrol etmek gerekir. Boyutların farklı olması sorun değilse array_split() daha esnek seçimdir.

İki boyutlu diziyi satır veya sütunlara göre bölme​

Alt parçalara ayırma işlemi yalnızca tek boyutlu diziler için değildir. İki boyutlu bir dizide axis parametresi, bölmenin hangi yönde yapılacağını belirler. axis=0 satırları, axis=1 sütunları böler.

Python:
import numpy as np

dizi = np.arange(12).reshape(3, 4)

satir_parcalari = np.split(dizi, 3, axis=0)
sutun_parcalari = np.split(dizi, 2, axis=1)

print("Satır parçaları:")
for parca in satir_parcalari:
    print(parca)

print("Sütun parçaları:")
for parca in sutun_parcalari:
    print(parca)

Girdi dizisi şu şekildedir:

Kod:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

axis=0 ile 3 parçaya bölündüğünde her parça bir satır ve dört sütun içerir. axis=1 ile 2 parçaya bölündüğünde ise her parça üç satır ve iki sütun içerir. Yani axis değeri, verinin içeriğini değil, dizinin hangi boyutunun kesileceğini belirler.

Belirli kesme noktalarıyla bölme​

Parça sayısını vermek yerine kesme noktalarını da belirleyebilirsiniz. Örneğin aşağıdaki kullanım diziyi 3. ve 7. indislerden böler:

Python:
import numpy as np

dizi = np.arange(10)
parcalar = np.split(dizi, [3, 7])

print(parcalar)

Çıktı şöyledir:

Kod:
[array([0, 1, 2]), array([3, 4, 5, 6]), array([7, 8, 9])]

Buradaki [3, 7] değerleri parça sayısı değildir; bölme sınırlarının indisleridir. Bu nedenle parçaların boyutları birbirinden farklı olabilir. İndisler sıralı verilmelidir; sınırların anlamı seçtiğiniz axis değerine göre değişir.

Sonucu kontrol etme​

Bölme işleminden sonra her parçanın boyutunu shape ile kontrol edin. Özellikle çok boyutlu dizilerde bu kontrol, yanlış eksen seçimini fark etmenizi sağlar.

Python:
for sira, parca in enumerate(parcalar):
    print(sira, parca.shape)

np.split() hata veriyorsa ilk kontrol edilmesi gerekenler, dizinin ilgili eksendeki uzunluğu ile istediğiniz parça sayısının uyumlu olup olmadığıdır. Eşit boyut zorunlu değilse np.array_split() kullanın; eşit boyut zorunluysa bölme işleminden önce diziyi uygun uzunlukta yeniden düzenleyin.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst