Garfield
YZF Admin
NumPy dizisinin transpozunu almak için iki boyutlu dizilerde en kısa yöntem
Aşağıdaki örnek varsayımsaldır. Girdi dizisinde ilk satır
Beklenen çıktı şöyledir:
Buradaki
NumPy'nin kurulu olduğu bir Python ortamında işlemi şu sırayla yapın:
İki yöntem de temel kullanımda aynı transpoz işlemini yapar.
İki boyutlu dizide
Şu dizi tek boyutludur:
Sütun vektörü istiyorsanız diziyi açıkça yeniden şekillendirin:
Beklenen boyut
Sonuç olarak, elinizde satır ve sütunları olan bir NumPy dizisi varsa
dizi.T ifadesidir. Aynı işlemi numpy.transpose(dizi) ile de yapabilirsiniz. Satırlar sütunlara, sütunlar satırlara dönüşür; örneğin 2×3 boyutundaki bir dizi 3×2 boyutuna geçer. Ancak tek boyutlu dizilerde .T görünür bir değişiklik oluşturmaz; böyle bir diziyi sütun vektörüne dönüştürmek için önce yeniden şekillendirmek gerekir.İki boyutlu dizinin transpozunu alma
Aşağıdaki örnek varsayımsaldır. Girdi dizisinde ilk satır
1, 2, 3, ikinci satır ise 4, 5, 6 değerlerini içerir. Transpozdan sonra satırlar sırasıyla [1, 4], [2, 5] ve [3, 6] olur. İki sütun ise [1, 2, 3] ve [4, 5, 6] değerlerini içerir.
Python:
import numpy as np
dizi = np.array([
[1, 2, 3],
[4, 5, 6]
])
transpoz = dizi.T
print(transpoz)
print(transpoz.shape)
Beklenen çıktı şöyledir:
Kod:
[[1 4]
[2 5]
[3 6]]
(3, 2)
Buradaki
(3, 2) sonucu, transpoze edilmiş dizinin 3 satır ve 2 sütundan oluştuğunu gösterir. Orijinal dizinin şekli (2, 3) olduğundan satır ve sütun sayıları yer değiştirmiştir.Uygulanacak yöntem
NumPy'nin kurulu olduğu bir Python ortamında işlemi şu sırayla yapın:
- NumPy'yi içe aktarın. Kodun başına
import numpy as npsatırını ekleyin; böylecenp.array()venp.transpose()işlevlerini kullanabilirsiniz. - Diziyi oluşturun veya mevcut diziyi seçin. Transpozun satırları ve sütunları değiştirmesi için dizinin en az iki boyutlu olması gerekir.
- Transpozu alın. Kısa kullanım için
transpoz = dizi.Tyazın. Alternatif olaraktranspoz = np.transpose(dizi)ifadesini kullanabilirsiniz. - Boyutu kontrol edin.
print(transpoz.shape)komutunu çalıştırın. İki boyutlu bir dizide sonuç, orijinal şeklin ters çevrilmiş hâli olmalıdır; örneğin(2, 3)değeri(3, 2)olur.
.T ile np.transpose() arasındaki fark
İki yöntem de temel kullanımda aynı transpoz işlemini yapar.
.T daha kısa ve okunaklıdır; np.transpose() ise eksen sırasını açıkça belirtmeniz gereken çok boyutlu dizilerde daha esnek bir seçenektir.| Yöntem | Örnek | Uygun kullanım |
|---|---|---|
.T | dizi.T | İki boyutlu dizilerde hızlı ve okunaklı transpoz |
np.transpose() | np.transpose(dizi) | Standart transpoz veya eksen sırasını ayrıca belirtme |
reshape() | dizi.reshape(-1, 1) | Tek boyutlu diziyi sütun vektörüne dönüştürme |
.T ve np.transpose(dizi) aynı sonucu verir. Tablodaki reshape() ise genel bir transpoz işlemi değildir; elemanları hedef şekle yerleştirir ve burada tek boyutlu diziyi sütun biçimine getirmek için gösterilmiştir. Çok boyutlu dizilerde eksenleri özel bir sıraya koymanız gerekiyorsa np.transpose(dizi, axes=(...)) biçiminde eksen sırasını belirtmeniz gerekir.Tek boyutlu dizilerde dikkat edilmesi gereken durum
Şu dizi tek boyutludur:
Python:
dizi = np.array([1, 2, 3])
print(dizi.shape) # (3,)
print(dizi.T.shape) # (3,)
(3,) ifadesi, dizinin üç elemanlı tek bir eksene sahip olduğunu gösterir. Bu nedenle .T onu otomatik olarak (3, 1) boyutunda sütun vektörüne dönüştürmez.Sütun vektörü istiyorsanız diziyi açıkça yeniden şekillendirin:
Python:
import numpy as np
dizi = np.array([1, 2, 3])
sutun_vektoru = dizi.reshape(-1, 1)
print(sutun_vektoru)
print(sutun_vektoru.shape)
Beklenen boyut
(3, 1) olur ve çıktı şu yapıya dönüşür:
Kod:
[[1]
[2]
[3]]
Sonuç olarak, elinizde satır ve sütunları olan bir NumPy dizisi varsa
dizi.T kullanın. Diziniz (n,) biçiminde tek boyutluysa önce hedefinizin sütun vektörü mü yoksa satır vektörü mü olduğunu belirleyin; ardından reshape(-1, 1) veya reshape(1, -1) ile boyutu açıkça oluşturun.
Son düzenleme: