0Pricing
Learn AI with Python · Lekcja

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 = 32

Macierz 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))   # identity

Wyznacznik

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.dot do mnożenia macierzy i obliczania iloczynów skalarnych (nie *)
  • np.linalg.inv, np.linalg.det
  • np.linalg.solve(A, b) jest lepsze niż odwracanie macierzy
  • np.linalg.eig do rozkładu na wartości i wektory własne
  • np.linalg.norm do pomiaru wielkości, A.T do 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

  1. Tworzenie tablic i ich właściwości
  2. Indeksowanie, wycinanie i indeksowanie zaawansowane
  3. Broadcasting i operacje zwektoryzowane
  4. Algebra liniowa z NumPy
← Powrót do Learn AI with Python