Linjär algebra med NumPy
np.dot, np.linalg.inv, np.linalg.eig och np.linalg.solve för ekvationssystem.
Linjär algebra med NumPy är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Linjär algebra i NumPy
NumPy tillhandahåller matrisoperationer genom operatorn @ och modulen np.linalg, som utgör grunden för nästan alla maskininlärningsalgoritmer.
Matrismultiplikation med @
Operatorn @ utför riktig matrismultiplikation. De inre dimensionerna måste matcha: (m,k) @ (k,n) ger (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]]@ jämfört med * (viktigt!)
* är elementvis, medan @ är matrismultiplikation. Att blanda ihop dem är ett klassiskt fel.
print(A * B) # element-wise: [[ 5 12]
# [21 32]]
print(A @ B) # matrix product (different result)np.dot
np.dot är funktionsformen. För 2D-arrayer motsvarar den @; för 1D-arrayer beräknar den skalärprodukten (en skalär).
u = np.array([1, 2, 3])
v = np.array([4, 5, 6])
print(np.dot(u, v)) # 1*4 + 2*5 + 3*6 = 32Matrisinvers
np.linalg.inv(A) returnerar inversen, alltså matrisen som ger identitetsmatrisen när den multipliceras med A. Endast kvadratiska, icke-singulära matriser har en invers.
A = np.array([[4.0, 7.0], [2.0, 6.0]])
Ainv = np.linalg.inv(A)
print(np.round(A @ Ainv, 6)) # identityDeterminant
np.linalg.det(A) ger determinanten. En determinant på 0 innebär att matrisen är singulär och inte kan inverteras.
print(np.linalg.det(A)) # 10.0 (nonzero -> invertible)Lösa linjära ekvationssystem
För att lösa A x = b bör Ni föredra np.linalg.solve(A, b) framför att beräkna inversen. Det är snabbare och numeriskt stabilare.
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.]Varför solve framför inv
Att beräkna inv(A) @ b innebär onödigt arbete och förstärker avrundningsfel. solve använder LU-faktorisering direkt. Använd solve i verklig kod.
# Avoid: x = np.linalg.inv(A) @ b
# Prefer: x = np.linalg.solve(A, b)Egenvärden och egenvektorer
np.linalg.eig(A) returnerar egenvärden och egenvektorer. Dessa ligger till grund för PCA, stabilitetsanalys med mera.
A = np.array([[2.0, 0.0], [0.0, 3.0]])
vals, vecs = np.linalg.eig(A)
print(vals) # [2. 3.]Normer för vektorer och matriser
np.linalg.norm mäter storlek. Som standard är det den euklidiska normen (L2-normen) för vektorer, som används överallt från avstånd till regularisering.
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)Transponering
A.T transponerar en matris genom att byta plats på rader och kolumner. Den förekommer ständigt i formler som normalekvationerna.
A = np.array([[1, 2, 3], [4, 5, 6]])
print(A.T)
# [[1 4]
# [2 5]
# [3 6]]Snabbkontroll
Testa hur väl Ni minns linjär algebra.
Sammanfattning
Verktygslåda för linjär algebra:
@/np.dotför matriser och skalärprodukter (inte*)np.linalg.inv,np.linalg.detnp.linalg.solve(A, b)är bättre än att inverteranp.linalg.eigför egenvärdesdekompositionnp.linalg.normför storlekar,A.Tför transponering
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Linjär algebra med NumPy” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Linjär algebra med NumPy”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Vad lär jag mig i ”Linjär algebra med NumPy”?
np.dot, np.linalg.inv, np.linalg.eig och np.linalg.solve för ekvationssystem. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Linjär algebra med NumPy”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Skapa arrayer och undersöka egenskaper
- Indexering, slicing och avancerad indexering
- Broadcasting och vektoriserade operationer
- Linjär algebra med NumPy