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

NumPy expand_dims ile yeni eksen nasıl eklenir?

  • 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

expand_dims ne yapar?​

NumPy’de yeni eksen eklemek için np.expand_dims(dizi, axis) kullanılır. Dizi içindeki değerler değişmez; yalnızca şekle bir boyut eklenir. Örneğin şekli (3,) olan bir diziyi axis=0 ile (1, 3), axis=1 ile (3, 1) şekline dönüştürebilirsiniz. Sonucu kesin olarak görmek için .shape özelliğini kontrol edin.

Temel kullanım​

Ön koşul olarak NumPy’nin kurulu olduğu bir Python ortamında çalışmanız gerekir. Aşağıdaki örnek, üç elemanlı tek boyutlu dizinin iki farklı konumuna yeni eksen ekler:

Python:
import numpy as np

dizi = np.array([10, 20, 30])

satir = np.expand_dims(dizi, axis=0)
sutun = np.expand_dims(dizi, axis=1)

print(dizi.shape)
print(satir)
print(satir.shape)
print(sutun)
print(sutun.shape)

Beklenen çıktı şöyledir:

Kod:
(3,)
[[10 20 30]]
(1, 3)
[[10]
 [20]
 [30]]
(3, 1)

Burada axis=0 başa yeni eksen ekler. Dizi tek satırlık iki boyutlu bir yapı gibi görünür. axis=1 ise mevcut eksenin sonrasına yeni eksen ekler ve sonuç sütun biçimine gelir. Her iki işlemde de değerlerin sırası ve sayısı aynıdır.

axis değeri nasıl seçilir?​

axis parametresi, yeni eksenin ekleneceği konumu belirtir. Eksenler sıfırdan sayılır; negatif değerler ise sondan sayma olanağı verir.

Python:
import numpy as np

dizi = np.array([[1, 2], [3, 4]])

for eksen in (0, 1, 2, -1):
    sonuc = np.expand_dims(dizi, axis=eksen)
    print(eksen, sonuc.shape)

Bu örnekte başlangıç şekli (2, 2) olduğu için her sonuçta toplam üç eksen bulunur:
axisYeni şekilYorum
0(1, 2, 2)Yeni eksen en başa eklenir.
1(2, 1, 2)Yeni eksen mevcut ilk eksenden sonra eklenir.
2(2, 2, 1)Yeni eksen sona eklenir.
-1(2, 2, 1)Yeni eksen son konuma eklenir.
axis=0 ve axis=-1 aynı sonucu vermez; biri başa, diğeri sona ekler. Eksen konumu, özellikle matris çarpımı, yayınlama kuralları ve makine öğrenmesi modellerine veri hazırlama sırasında önemlidir.

expand_dims yerine hangi kısa yazım kullanılabilir?​

Tek bir eksen ekleyecekseniz köşeli parantezle indeksleme de aynı şekil dönüşümünü yapabilir:

Python:
import numpy as np

dizi = np.array([10, 20, 30])

print(dizi[None, :].shape)  # (1, 3)
print(dizi[:, None].shape)   # (3, 1)

np.expand_dims daha açık ve eksen numarasını doğrudan belirttiği için fonksiyon içinde veya genel amaçlı kodda okunabilirliği artırır. None ya da np.newaxis kullanımı ise kısa ve yerel dönüşümlerde pratiktir. Her iki yaklaşım da verileri kopyalayıp yeniden düzenlemekten çok, yeni bir eksen boyutu ekleme amacı taşır; aritmetik değerleri otomatik olarak toplamaz, sıralamaz veya yeniden şekillendirme gerektiren her durumu çözmez.

Yaygın hata: eksen numarasını yanlış vermek​

Bir dizinin ndim değeri mevcut eksen sayısını gösterir. Yeni eksenin geçerli konumunu seçerken bu bilgiyi kontrol edebilirsiniz:

Python:
import numpy as np

dizi = np.zeros((2, 3))
print(dizi.ndim)          # 2
print(np.expand_dims(dizi, axis=2).shape)  # (2, 3, 1)

Sonucun beklediğiniz yerde oluşup oluşmadığını .shape ile doğrulayın. axis değeri izin verilen aralığın dışındaysa NumPy eksen hatası verir; böyle bir durumda önce başlangıç şeklini ve ndim değerini yazdırın, ardından yeni eksenin başta mı, ortada mı, sonda mı olması gerektiğine göre axis değerini düzeltin.
 

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.
Robotlar:
  • Anthropic
Geri
Üst