Lär Er AI med Python · Lektion

Linjär algebra med NumPy

np.dot, np.linalg.inv, np.linalg.eig och np.linalg.solve för ekvationssystem.

Lektion 4 av 413 steg

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

Matrisinvers

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

Determinant

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.dot för matriser och skalärprodukter (inte *)
  • np.linalg.inv, np.linalg.det
  • np.linalg.solve(A, b) är bättre än att invertera
  • np.linalg.eig för egenvärdesdekomposition
  • np.linalg.norm för storlekar, A.T för transponering
Gratis att börja

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

  1. Skapa arrayer och undersöka egenskaper
  2. Indexering, slicing och avancerad indexering
  3. Broadcasting och vektoriserade operationer
  4. Linjär algebra med NumPy
← Tillbaka till Lär Er AI med Python