Algebra liniowa z NumPy
np.dot, np.linalg.inv, np.linalg.eig, np.linalg.solve do rozwiązywania układów równań.
Algebra liniowa z NumPy to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Algebra liniowa w NumPy
NumPy udostępnia operacje macierzowe za pomocą operatora @ oraz modułu np.linalg, które stanowią podstawę niemal każdego algorytmu uczenia maszynowego.
Mnożenie macierzy za pomocą @
Operator @ wykonuje właściwe mnożenie macierzy. Wymiary wewnętrzne muszą się zgadzać: (m,k) @ (k,n) daje (m,n).
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A @ B)
# [[19 22]
# [43 50]]@ a * (ważne!)
* działa element po elemencie, a @ wykonuje mnożenie macierzy. Pomylenie tych operatorów to klasyczny błąd.
print(A * B) # element-wise: [[ 5 12]
# [21 32]]
print(A @ B) # matrix product (different result)np.dot
np.dot to postać funkcyjna. Dla tablic 2D jest równoważne @, a dla tablic 1D oblicza iloczyn skalarny (skalar).
u = np.array([1, 2, 3])
v = np.array([4, 5, 6])
print(np.dot(u, v)) # 1*4 + 2*5 + 3*6 = 32Macierz odwrotna
np.linalg.inv(A) zwraca macierz odwrotną, która po pomnożeniu przez A daje macierz jednostkową. Macierz odwrotną mają tylko macierze kwadratowe i nieosobliwe.
A = np.array([[4.0, 7.0], [2.0, 6.0]])
Ainv = np.linalg.inv(A)
print(np.round(A @ Ainv, 6)) # identityWyznacznik
np.linalg.det(A) zwraca wyznacznik. Wyznacznik równy 0 oznacza, że macierz jest osobliwa i nie można jej odwrócić.
print(np.linalg.det(A)) # 10.0 (nonzero -> invertible)Rozwiązywanie układów równań liniowych
Aby rozwiązać równanie A x = b, używaj np.linalg.solve(A, b) zamiast obliczać macierz odwrotną. Jest to szybsze i zapewnia większą stabilność numeryczną.
A = np.array([[3.0, 1.0], [1.0, 2.0]])
b = np.array([9.0, 8.0])
x = np.linalg.solve(A, b)
print(x) # [2. 3.]Dlaczego solve zamiast inv
Obliczanie inv(A) @ b wymaga niepotrzebnej pracy i zwiększa błąd zaokrągleń. solve korzysta bezpośrednio z rozkładu LU. W praktycznym kodzie należy używać solve.
# Avoid: x = np.linalg.inv(A) @ b
# Prefer: x = np.linalg.solve(A, b)Wartości i wektory własne
np.linalg.eig(A) zwraca wartości i wektory własne. Są one podstawą PCA, analizy stabilności i wielu innych zastosowań.
A = np.array([[2.0, 0.0], [0.0, 3.0]])
vals, vecs = np.linalg.eig(A)
print(vals) # [2. 3.]Normy wektorów i macierzy
np.linalg.norm mierzy wielkość. Domyślnie dla wektorów jest to norma euklidesowa (L2), używana wszędzie — od obliczania odległości po regularyzację.
v = np.array([3.0, 4.0])
print(np.linalg.norm(v)) # 5.0 (sqrt(9+16))
print(np.linalg.norm(v, 1)) # 7.0 (L1 norm)Transpozycja
A.T transponuje macierz, zamieniając wiersze miejscami z kolumnami. Pojawia się nieustannie we wzorach takich jak równania normalne.
A = np.array([[1, 2, 3], [4, 5, 6]])
print(A.T)
# [[1 4]
# [2 5]
# [3 6]]Szybki test
Sprawdź swoją znajomość algebry liniowej.
Podsumowanie
Narzędzia algebry liniowej:
@/np.dotdo mnożenia macierzy i obliczania iloczynów skalarnych (nie*)np.linalg.inv,np.linalg.detnp.linalg.solve(A, b)jest lepsze niż odwracanie macierzynp.linalg.eigdo rozkładu na wartości i wektory własnenp.linalg.normdo pomiaru wielkości,A.Tdo transpozycji
Często zadawane pytania
Czy lekcja „Algebra liniowa z NumPy” jest bezpłatna?
Tak — pełny tekst „Algebra liniowa z NumPy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Algebra liniowa z NumPy”?
np.dot, np.linalg.inv, np.linalg.eig, np.linalg.solve do rozwiązywania układów równań. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Algebra liniowa z NumPy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie tablic i ich właściwości
- Indeksowanie, wycinanie i indeksowanie zaawansowane
- Broadcasting i operacje zwektoryzowane
- Algebra liniowa z NumPy