logo

Python'da NumPy Matris Çarpımı

Matris çarpımı, iki matrisi girdi olarak alıp, birinci matrisin satırlarını ikinci matrisin sütunuyla çarparak tek bir matris üreten bir işlemdir. İlk matristeki satır sayısının ikinci matristeki sütun sayısına eşit olmasını sağlamamız gerektiğini unutmayın.

Python'da NumPy Matris Çarpımı

Python'da NumPy kullanılarak matris çarpımı işlemi şu şekilde bilinir: vektörizasyon . Vektörizasyonun temel amacı, döngüler için bunu açıkça kullanıyorduk. Programlardaki 'for' döngülerini azaltarak daha hızlı hesaplama sağlar. Yerleşik paket NumPy, manipülasyon ve dizi işleme için kullanılır.

Bunlar numpy matris çarpımını gerçekleştirebileceğimiz üç yöntemdir.

  1. Bunlardan ilki, matrisin eleman bazında çarpımını gerçekleştiren multiple() fonksiyonunun kullanılmasıdır.
  2. İkincisi, iki dizinin matris çarpımını gerçekleştiren matmul() fonksiyonunun kullanılmasıdır.
  3. Sonuncusu, iki dizinin nokta çarpımını gerçekleştiren dot() işlevinin kullanılmasıdır.

Örnek 1: Eleman bazında matris çarpımı

 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.multiply(array1,array2) result 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • Numpy.array() fonksiyonunu kullanarak 3 boyutlu bir dizi1 ve dizi2 oluşturduk.
  • Değişken bir sonuç oluşturduk ve np.multiply() fonksiyonunun döndürdüğü değeri atadık.
  • Hem dizi1 hem de dizi2 dizisini np.multiply()'da ilettik.
  • Son olarak sonucun değerini yazdırmaya çalıştık.

Çıktıda, elemanları hem dizi1 hem de dizi2 elemanlarının eleman bazında çarpımının sonucu olan üç boyutlu bir matris gösterilmiştir.

Çıktı:

 array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]]) 

Örnek 2: Matris çarpımı

 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.matmul(array1,array2) result 

Çıktı:

 array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]]) 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • Numpy.array() fonksiyonunu kullanarak 3 boyutlu dizi1 ve dizi2'yi oluşturduk.
  • Değişken bir sonuç oluşturduk ve np.matmul() fonksiyonunun döndürdüğü değeri atadık.
  • Hem dizi1 hem de dizi2 dizisini np.matmul()'da ilettik.
  • Son olarak sonucun değerini yazdırmaya çalıştık.

Çıktıda, elemanları hem dizi1 hem de dizi2 elemanlarının çarpımı olan üç boyutlu bir matris gösterilmiştir.

Örnek 3: Nokta çarpımı

Numpy.dot için aşağıdaki özellikler şunlardır:

  • Hem a hem de b 1 boyutlu (tek boyutlu) diziler olduğunda-> İki vektörün iç çarpımı (karmaşık eşlenik olmadan)
  • Hem a hem de b 2 boyutlu (iki boyutlu) diziler olduğunda -> Matris çarpımı
  • a veya b'den biri 0-D olduğunda (skaler olarak da bilinir) -> numpy.multiply(a, b) veya a * b'yi kullanarak çarpın.
  • a bir N-D dizisi ve b bir 1-D dizisi olduğunda -> a ve b'nin son eksenine göre çarpımı toplayın.
  • a bir N-D dizisi ve b bir M-D dizisi olduğunda, M>=2 -> a'nın son ekseni ve b'nin ikinciden sonuncuya ekseni üzerindeki çarpımı toplayın:
    Ayrıca, nokta(a, b)[i,j,k,m] = toplam(a[i,j,:] * b[k,:,m])
 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.dot(array1,array2) result 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • Numpy.array() fonksiyonunu kullanarak 3 boyutlu dizi1 ve dizi2'yi oluşturduk.
  • Değişken bir sonuç oluşturduk ve np.dot() fonksiyonunun döndürdüğü değeri atadık.
  • Hem dizi1'i hem de dizi2'yi np.dot()'a aktardık.
  • Son olarak sonucun değerini yazdırmaya çalıştık.

Çıktıda, elemanları hem dizi1 hem de dizi2 elemanlarının nokta çarpımı olan üç boyutlu bir matris gösterilmiştir.

Çıktı:

 array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])