Garfield
YZF Admin
Temel kullanım
NumPy'de dizileri dikey birleştirmek için
np.vstack() kullanılır. Diziler, satırlar alt alta gelecek şekilde birleştirilir; iki boyutlu dizilerde sütun sayıları aynı olmalıdır. Birleştirme sonunda daha fazla satıra sahip tek bir dizi elde edilir.Ön koşul olarak NumPy'nin içe aktarılmış olması yeterlidir:
Python:
import numpy as np
a = np.array([[1, 2],
[3, 4]])
b = np.array([[5, 6],
[7, 8]])
sonuc = np.vstack((a, b))
print(sonuc)
Çıktı şöyledir:
Python:
[[1 2]
[3 4]
[5 6]
[7 8]]
Burada
a ve b dizileri ikişer satırlı ve ikişer sütunludur. vstack(), b dizisinin satırlarını a dizisinin altına eklediği için sonuç dört satır ve iki sütundan oluşur.Dizileri dikey birleştirme adımları
- NumPy'yi içe aktarın. Kodun başına
import numpy as npsatırını ekleyin; böylece işlevinp.vstack()biçiminde çağırabilirsiniz. - Birleştirilecek dizileri oluşturun. İki boyutlu dizilerde her dizinin sütun sayısını aynı tutun. Örneğin iki sütunlu bir dizi yalnızca başka bir iki sütunlu diziyle doğrudan dikey birleştirilebilir.
- Dizileri
vstack()içine verin.np.vstack((ilk_dizi, ikinci_dizi))ifadesini kullanın. Birden fazla dizi varsa bunları aynı demet içinde sırayla yazabilirsiniz. - Sonucun şeklini kontrol edin.
sonuc.shapedeğerini yazdırarak satır ve sütun sayısını doğrulayın. Satır sayısı dizilerin satırlarının toplamı, sütun sayısı ise ortak sütun sayısı olmalıdır.
Python:
import numpy as np
ust = np.array([[1, 2]])
orta = np.array([[3, 4]])
alt = np.array([[5, 6]])
sonuc = np.vstack((ust, orta, alt))
print(sonuc)
print(sonuc.shape)
Beklenen çıktı:
Python:
[[1 2]
[3 4]
[5 6]]
(3, 2)
Bu sonuç, üç satır ve iki sütun bulunduğunu gösterir.
vstack() verileri sıralamaz veya toplamaz; verilen dizileri ilk eksen boyunca birleştirir. Çıktı tek bir ortak dtype kullanır; farklı türler bir araya geldiğinde dönüşüm oluşabilir. Örneğin büyük int64 değerlerinin float64 ile birleştirilmesi tam sayı duyarlılığını kaybettirebilir. Değerleri aynen korumak gerekiyorsa giriş türlerini ve sonuç dtype değerini ayrıca kontrol edin.Tek boyutlu dizilerde kullanım
Tek boyutlu diziler
(n,) biçimindedir. vstack() bunları üst üste eklerken her diziyi bir satır gibi değerlendirir:
Python:
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
sonuc = np.vstack((x, y))
print(sonuc)
print(sonuc.shape)
Çıktı:
Python:
[[1 2 3]
[4 5 6]]
(2, 3)
Yani iki tek boyutlu dizi, iki satırlı ve üç sütunlu iki boyutlu bir diziye dönüşür. Tek boyutlu dizileri tek bir sütun hâlinde birleştirmek istiyorsanız önce onları sütun biçimine dönüştürün:
Python:
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
sonuc = np.vstack((x[:, np.newaxis], y[:, np.newaxis]))
print(sonuc)
print(sonuc.shape)
Bu kez sonuç şöyledir:
Python:
[[1]
[2]
[3]
[4]
[5]
[6]]
(6, 1)
vstack, hstack ve concatenate farkı
Benzer işlevler farklı eksenlerde birleştirme yaptığı için doğru seçimi dizilerin nasıl yerleşmesini istediğinize göre yapın.
| İşlev | Birleştirme yönü | Örnek sonuç |
|---|---|---|
np.vstack() | Satırlar alt alta eklenir | Satır sayısı artar |
np.hstack() | İki boyutta sütunlar yan yana; tek boyutta elemanlar ardışık eklenir | İki boyutta sütun sayısı, tek boyutta uzunluk artar |
np.concatenate(axis=0) | Satır ekseninde birleştirir | İki boyutlu dizilerde vstack() ile aynı yöndür |
np.concatenate(axis=1) | Sütun ekseninde birleştirir | İki boyutlu dizilerde yan yana birleştirme yapar |
vstack() yerine hstack() kullanabilirsiniz. vstack() ile birleştirme sırasında temel kontrol, dizilerin sütun sayılarının uyuşmasıdır.Boyut uyuşmazlığı hatası
Aşağıdaki diziler dikey birleştirilemez:
Python:
a = np.array([[1, 2]])
b = np.array([[3, 4, 5]])
np.vstack((a, b))
Çünkü
a iki, b ise üç sütunludur. Dikey birleştirmede satırlar alt alta eklense de sütun yapısının devam edebilmesi gerekir. Bu nedenle önce şekilleri kontrol edin:
Python:
print(a.shape)
print(b.shape)
Şekiller uyuşmuyorsa eksik sütunları tamamlamak, gereksiz sütunları kaldırmak veya amacınıza uygunsa
hstack() ya da farklı bir yeniden şekillendirme yöntemi kullanmak gerekir. Sadece hatayı gidermek için veriyi rastgele yeniden şekillendirmeyin; bu, değerlerin satır ve sütun anlamını değiştirebilir.Sonucu doğrulama
Birleştirmeden sonra şu üç kontrol yeterlidir:
- Satır sayısını kontrol edin. Sonuçtaki satır sayısı, birleştirilen dizilerin satır sayılarının toplamı olmalıdır.
- Sütun sayısını kontrol edin. İki boyutlu dizilerde sonuçtaki sütun sayısı, giriş dizilerindeki ortak sütun sayısıyla aynı olmalıdır.
- Değer sırasını kontrol edin. Sonuçta önce ilk verilen dizi, ardından sonraki diziler görünmelidir;
vstack()değerleri otomatik olarak sıralamaz.
np.vstack((dizi1, dizi2)) kullanın. İki boyutlu dizilerde sütun sayılarının aynı olduğunu ve tek boyutlu dizilerin satır mı, sütun mu olarak yorumlanması gerektiğini kontrol edin.
Son düzenleme: