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.
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.
- Pierwszym z nich jest użycie funkcji multiply(), która wykonuje elementarne mnożenie macierzy.
- Drugim jest użycie funkcji matmul(), która wykonuje iloczyn macierzowy dwóch tablic.
- 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]]]])