
Jeśli pracujesz z biblioteką NumPy w Pythonie, na pewno prędzej czy później natkniesz się na funkcję numpy.dot()
. To jedno z podstawowych narzędzi do mnożenia macierzy, obliczania iloczynu skalarnego czy przekształceń wektorowych. W poniższym artykule wyjaśnię, jak działa numpy.dot()
, jakie są jego praktyczne zastosowania oraz pokażę konkretne przykłady kodu.
Czym jest numpy.dot()?
Funkcja numpy.dot()
służy do wykonywania iloczynu dwóch tablic NumPy według określonych zasad:
- Gdy oba argumenty to wektory jednowymiarowe (czyli proste listy liczb), zwraca iloczyn skalarny.
- Gdy co najmniej jeden argument jest macierzą, wykonuje standardowe mnożenie macierzowe.
- Dla wielowymiarowych (3D, 4D itd.) tablic NumPy funkcja stosuje reguły algebraiczne dla ich wymiarów.
Jak działa numpy.dot() w praktyce?
Aby lepiej zrozumieć, jak działa numpy.dot()
, przyjrzyjmy się kilku praktycznym przykładom.
Iloczyn skalarny dwóch wektorów
Podstawowy przypadek użycia to iloczyn skalarny, czyli suma iloczynów odpowiadających sobie elementów dwóch wektorów:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
wynik = np.dot(a, b)
print(wynik) # Output: 32
Obliczenia wykonane przez numpy.dot()
dla powyższego przykładu:
1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32
Mnożenie macierzy
W przypadku dwuwymiarowych tablic, numpy.dot()
realizuje standardowe mnożenie macierzowe:
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
wynik = np.dot(A, B)
print(wynik)
Wynik działania to:
[[19 22]
[43 50]]
Obliczenia przebiegają według reguł mnożenia macierzy:
- (1×5 + 2×7), (1×6 + 2×8) → 19, 22
- (3×5 + 4×7), (3×6 + 4×8) → 43, 50
Operacje na macierzach trójwymiarowych
Dla macierzy o większej liczbie wymiarów numpy.dot()
stosuje zasady algebraiczne na zgodnych wymiarowo osiach.
import numpy as np
A = np.random.rand(3, 4, 5)
B = np.random.rand(5, 6)
wynik = np.dot(A, B)
print(wynik.shape) # Output: (3, 4, 6)
W powyższym przypadku NumPy dostosowuje wymiarowość, aby wykonać poprawne operacje.
Czym różni się numpy.dot() od numpy.matmul()?
W NumPy istnieje również inna funkcja o nazwie numpy.matmul()
, która na pierwszy rzut oka działa podobnie do numpy.dot()
, jednak różnice pojawiają się przy pracy z wektorami i macierzami o więcej niż dwóch wymiarach:
Funkcja | Zastosowanie | Obsługa wymiarów |
---|---|---|
numpy.dot() |
Iloczyn skalarny, mnożenie macierzy | Działa na wektorach 1D, macierzach 2D i tablicach 3D+ |
numpy.matmul() |
Ścisłe mnożenie macierzy | Nie obsługuje iloczynu skalarnego wektorów 1D |
Kiedy używać numpy.dot()?
numpy.dot()
sprawdza się w wielu sytuacjach, w tym:
- Obliczanie iloczynu skalarnych wektorów w analizie danych.
- Operacje macierzowe w uczeniu maszynowym.
- Transformacje 3D w grafice komputerowej.
Jeśli chcesz wykonać wyłącznie mnożenie macierzowe, warto rozważyć użycie numpy.matmul()
lub operatora @
, który jest bardziej czytelny w nowoczesnym Pythonie.
Podsumowanie
Funkcja numpy.dot()
jest wszechstronnym narzędziem do wykonywania obliczeń algebraicznych w NumPy. W zależności od wymiaru wejściowych tablic może zwracać iloczyn skalarny lub wykonywać mnożenie macierzowe. Warto znać jej zasady działania i różnice w stosunku do numpy.matmul()
, aby unikać błędów i pisać bardziej czytelny kod.
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.