NumPy Shape ve Reshape Kullanımı
NumPy shape ve reshape kullanımı, veri bilimi çalışmalarında mutlaka bilmeniz gereken konulardan biridir. Çünkü birçok hata yanlış dizi boyutundan kaynaklanır.
Örneğin bir model 2 boyutlu veri beklerken siz tek boyutlu dizi gönderebilirsiniz. Bu durumda Python hata verir. Bu nedenle dizi boyutlarını kontrol etmeyi öğrenmelisiniz.
NumPy, matris işlemleri ve veri analizi konularını temelden öğrenmek isteyenler için Python Yazılım Kursu içeriği doğru bir başlangıç sağlar.
Bu yazıda shape ve reshape() konularını sade örneklerle inceleyeceğiz.
NumPy Shape Nedir?
Öncelikle shape kavramına bakalım. shape, bir NumPy dizisinin boyut bilgisini gösterir.
Bu yapı fonksiyon değildir. Bu yüzden shape() şeklinde yazmazsınız. Doğru kullanım shape şeklindedir.
Örnek:
import numpy as np
dizi = np.array([[1, 2, 3], [4, 5, 6]])
print(dizi.shape)Çıktı:
(2, 3)Bu sonuç dizinin 2 satır ve 3 sütundan oluştuğunu gösterir.

Tek Boyutlu Dizide Shape Kullanımı
Tek boyutlu bir dizide shape daha farklı görünür.
Örnek:
import numpy as np
dizi = np.array([10, 20, 30, 40])
print(dizi.shape)Çıktı:
(4,)Bu çıktı dizide 4 eleman bulunduğunu gösterir. Ayrıca ikinci bir değer görmezsiniz. Çünkü dizi tek boyutludur.
İki Boyutlu Dizide Shape Kullanımı
İki boyutlu dizilerde shape, satır ve sütun bilgisini verir.
Örnek:
import numpy as np
matris = np.array([
[1, 2],
[3, 4],
[5, 6]
])
print(matris.shape)Çıktı:
(3, 2)Bu sonuç matrisin 3 satır ve 2 sütundan oluştuğunu gösterir.
NumPy Reshape Nedir?
Şimdi reshape() fonksiyonuna geçelim. reshape(), bir NumPy dizisinin boyutunu değiştirir.
Ancak burada kritik bir kural vardır. Toplam eleman sayısı aynı kalmalıdır.
Örneğin 12 elemanlı bir diziyi 3×4 yapabilirsiniz. Çünkü 3 x 4 = 12 eder. Aynı diziyi 5×3 yapamazsınız. Çünkü 5 x 3 = 15 eder.
reshape() ile Vektörü Matrise Çevirme
Aşağıdaki örnekte tek boyutlu bir diziyi matrise çeviriyoruz:
import numpy as np
dizi = np.arange(1, 13)
matris = dizi.reshape(3, 4)
print(matris)Çıktı:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]Başta elimizde 12 elemanlı tek boyutlu bir dizi vardı. Ardından reshape(3, 4) ile bu diziyi 3 satır ve 4 sütun haline getirdik.
Reshape Kullanırken En Sık Yapılan Hata
En sık hata, toplam eleman sayısını yanlış hesaplamaktır.
Örneğin şu kod hata verir:
import numpy as np
dizi = np.arange(1, 13)
matris = dizi.reshape(5, 3)Çünkü dizide 12 eleman vardır. Ancak 5×3 yapı 15 eleman ister.
Doğru kullanım şöyle olabilir:
import numpy as np
dizi = np.arange(1, 13)
matris = dizi.reshape(6, 2)
print(matris)Çıktı:
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]
[11 12]]Bu nedenle reshape kullanmadan önce toplam eleman sayısını kontrol edin.
Bu tarz boyut kontrolü, veri bilimi eğitimi içinde veri hazırlama ve matris işlemlerini anlamak için temel konulardan biridir.
reshape(-1) Ne İşe Yarar?
reshape(-1), NumPy’ye boyutu otomatik hesaplatır.
Örneğin sütun sayısını 2 yapmak istiyorsanız satır sayısını siz yazmak zorunda kalmazsınız.
import numpy as np
dizi = np.arange(1, 13)
matris = dizi.reshape(-1, 2)
print(matris)Çıktı:
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]
[11 12]]Bu örnekte NumPy toplam 12 eleman olduğunu görür. Ardından sütun sayısı 2 olduğu için satır sayısını 6 olarak hesaplar.
Çok Boyutlu Diziyi Tek Boyuta İndirme
Ayrıca reshape(-1) ile çok boyutlu bir diziyi tek boyutlu hale getirebilirsiniz.
Örnek:
import numpy as np
matris = np.array([
[1, 2, 3],
[4, 5, 6]
])
duz_dizi = matris.reshape(-1)
print(duz_dizi)Çıktı:
[1 2 3 4 5 6]Bu kullanım, matrisi düz bir vektör haline getirir.
Shape ve Reshape Arasındaki Fark
Kısaca shape mevcut boyutu gösterir. reshape() ise dizinin boyutunu değiştirir.
Shape ve reshape kullanımının teknik detayları için NumPy resmi dokümantasyonu incelenebilir.
| Kavram | Görevi |
| shape | Mevcut boyutu gösterir |
| reshape() | Yeni boyut oluşturur |
Bu ayrımı bilmek önemlidir. Çünkü biri kontrol sağlar, diğeri dönüşüm yapar.
Sonuç olarak NumPy shape ve reshape kullanımı, dizi boyutlarını doğru yönetmenizi sağlar.
Önce shape ile mevcut boyutu kontrol edin. Ardından reshape() ile diziyi ihtiyacınıza göre düzenleyin.
Kural basit:
Toplam eleman sayısı aynı kalmalıdır.
Bu kuralı unutmazsanız NumPy ile dizi boyutlandırma konusunda hata yapma riskiniz ciddi şekilde azalır.







