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

NumPy matmul ile matris çarpımı nasıl yapılı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 1
  • Etiketler Etiketler
    veri bilimi

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni

Matris çarpımının temel kuralı​

NumPy’de iki matrisin matematiksel çarpımını yapmak için np.matmul(A, B) veya daha kısa olarak A @ B kullanılır. İlk matrisin sütun sayısı ikinci matrisin satır sayısına eşitse işlem yapılır ve sonuçta ilk matrisin satır, ikinci matrisin sütun sayısını taşıyan yeni bir dizi elde edilir.

Örneğin 2×3 boyutundaki bir matris ile 3×2 boyutundaki bir matrisi çarparsanız sonuç 2×2 boyutunda olur. En küçük çalışır örnek şöyledir:

Python:
import numpy as np

A = np.array([
    [1, 2, 3],
    [4, 5, 6]
])

B = np.array([
    [7, 8],
    [9, 10],
    [11, 12]
])

sonuc = np.matmul(A, B)

print(sonuc)

Bu kodun çıktısı:

Kod:
[[ 58  64]
 [139 154]]

İlk sonuç hücresi, A’nın ilk satırı ile B’nin ilk sütununun çarpılıp toplanmasıyla hesaplanır: 1×7 + 2×9 + 3×11 = 58. Aynı kural diğer hücreler için de uygulanır. Sonuç, elemanların aynı konumda çarpılması değil, satır-sütun çarpımlarının toplamıdır.

Uygulanacak yöntem​

Python ortamınızda NumPy kurulu değilse önce kurun. Ardından aşağıdaki sırayla ilerleyin:
  1. NumPy’yi içe aktarın. Kod dosyanızın başına import numpy as np satırını ekleyin; böylece NumPy işlevlerine np kısaltmasıyla erişebilirsiniz.
  2. Matrisleri NumPy dizisi olarak oluşturun. np.array([...]) kullanın ve çarpım için ilk dizinin sütun sayısının ikinci dizinin satır sayısına eşit olduğundan emin olun.
  3. Matris çarpımını çalıştırın. sonuc = np.matmul(A, B) yazın veya aynı işlemin kısa gösterimi olan sonuc = A @ B ifadesini kullanın.
  4. Sonucu kontrol edin. print(sonuc) ile matrisi ve sonuc.shape ile boyutunu yazdırın. Yukarıdaki örnekte boyut (2, 2) olmalıdır.

matmul, @ ve eleman bazlı çarpma arasındaki fark​

np.matmul(A, B) ile A @ B aynı matris çarpımını yapar. Buna karşılık A * B, uygun boyutlarda dizilerin aynı konumdaki elemanlarını çarpar; matematiksel matris çarpımının yerine geçmez.

Karar vermeyi kolaylaştıran temel ayrım şöyledir:
İfadeİşlemNe zaman kullanılır?
np.matmul(A, B)Matris çarpımıSatır-sütun kurallarına göre çarpım gerektiğinde
A @ BMatris çarpımımatmul için kısa ve okunabilir gösterim gerektiğinde
A * BEleman bazlı çarpmaAynı konumdaki değerleri ayrı ayrı çarpmak istediğinizde
Örneğin A * B kullanmak istiyorsanız dizilerin şekilleri eleman bazlı işleme, yani NumPy’nin yayınlama (broadcasting) kurallarına uygun olmalıdır. Yukarıdaki 2×3 ve 3×2 diziler bu kurallara uymadığı için A * B bir ValueError üretir; matris çarpımı ise geçerlidir. Matematiksel matris çarpımı için np.matmul veya @ kullanın.

Boyut uyuşmazlığını kontrol etme​

İşlemden önce şekilleri yazdırarak hatanın nedenini görebilirsiniz:

Python:
print(A.shape)
print(B.shape)

sonuc = A @ B
print(sonuc.shape)

İlk dizi (m, n), ikinci dizi (n, p) biçimindeyse sonuç (m, p) olur. Örneğin (2, 3) ile (3, 2) çarpılabilir; fakat (2, 3) ile (2, 2) doğrudan çarpılamaz, çünkü ilk dizinin sütun sayısı olan 3 ile ikinci dizinin satır sayısı olan 2 eşit değildir. Böyle bir hata alırsanız önce shape değerlerini kontrol edin; matrisi rastgele yeniden şekillendirmek yerine verinin matematiksel düzenine uygun dönüşümü belirleyin.
 
Son düzenleme:

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