logo

NumPy Mnożenie macierzy w Pythonie

Mnożenie macierzy jest operacją, która tworzy pojedynczą macierz, przyjmując dwie macierze jako dane wejściowe i mnożąc wiersze pierwszej macierzy przez kolumnę drugiej macierzy. Należy pamiętać, że musimy zadbać o to, aby liczba wierszy pierwszej macierzy była równa liczbie kolumn drugiej macierzy.

NumPy Mnożenie macierzy w Pythonie

W Pythonie proces mnożenia macierzy przy użyciu NumPy jest znany jako wektoryzacja . Głównym celem wektoryzacji jest usunięcie lub zmniejszenie dla pętli którego wyraźnie używaliśmy. Redukcja pętli „for” z programów zapewnia szybsze obliczenia. Wbudowany pakiet NumPy służy do manipulacji i przetwarzania tablic.

Są trzy metody, dzięki którym możemy wykonać mnożenie macierzy numpy.

  1. Pierwszym z nich jest użycie funkcji multiply(), która wykonuje elementarne mnożenie macierzy.
  2. Drugim jest użycie funkcji matmul(), która wykonuje iloczyn macierzowy dwóch tablic.
  3. Ostatnim sposobem jest użycie funkcji dot(), która wykonuje iloczyn skalarny dwóch tablic.

Przykład 1: Mnożenie macierzy według elementów

 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 

W powyższym kodzie

vikas divyakirti
  • Zaimportowaliśmy numpy z aliasem np.
  • Stworzyliśmy tablice array1 i array2 za pomocą funkcji numpy.array() z wymiarem 3.
  • Stworzyliśmy zmienny wynik i przypisaliśmy zwróconą wartość funkcji np.multiply().
  • Przekazaliśmy zarówno tablicę array1, jak i array2 w np.multiply().
  • Na koniec próbowaliśmy wydrukować wartość wyniku.

Na wyjściu pokazano trójwymiarową macierz, której elementy są wynikiem elementarnego mnożenia zarówno elementów array1, jak i array2.

Wyjście:

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

Przykład 2: Produkt matrycowy

 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 

Wyjście:

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

W powyższym kodzie

  • Zaimportowaliśmy numpy z aliasem np.
  • Stworzyliśmy tablicę1 i tablicę2 za pomocą funkcji numpy.array() z wymiarem 3.
  • Stworzyliśmy zmienny wynik i przypisaliśmy zwróconą wartość funkcji np.matmul().
  • Przekazaliśmy zarówno tablicę array1, jak i array2 w np.matmul().
  • Na koniec próbowaliśmy wydrukować wartość wyniku.

Na wyjściu pokazano trójwymiarową macierz, której elementy są iloczynami zarówno elementów array1, jak i array2.

Przykład 3: Iloczyn skalarny

Oto następujące specyfikacje numpy.dot:

  • Gdy oba a i b są tablicami 1-D (jednowymiarowymi)-> Iloczyn wewnętrzny dwóch wektorów (bez złożonej koniugacji)
  • Gdy oba a i b są tablicami 2-D (dwuwymiarowymi), -> Mnożenie macierzy
  • Gdy a lub b wynosi 0-D (znane również jako skalar) -> Pomnóż za pomocą numpy.multiply(a, b) lub a * b.
  • Gdy a jest tablicą N-D, a b jest tablicą 1-D -> Suma iloczynu na ostatniej osi aib.
  • Gdy a jest tablicą N-D, a b jest tablicą M-D pod warunkiem, że M>=2 -> Suma iloczynu na ostatniej osi a i przedostatniej osi b:
    Ponadto kropka(a, b)[i,j,k,m] = suma(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 

W powyższym kodzie

  • Zaimportowaliśmy numpy z aliasem np.
  • Stworzyliśmy tablicę1 i tablicę2 za pomocą funkcji numpy.array() z wymiarem 3.
  • Stworzyliśmy zmienny wynik i przypisaliśmy zwróconą wartość funkcji np.dot().
  • Przekazaliśmy zarówno tablicę array1, jak i array2 w np.dot().
  • Na koniec próbowaliśmy wydrukować wartość wyniku.

Na wyjściu pokazano trójwymiarową macierz, której elementy są iloczynem skalarnym zarówno elementów array1, jak i array2.

int na ciąg

Wyjście:

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