Python Academy · leksjon

Lineær algebra med NumPy

Utfør matriseprodukt, dekomponeringer og løsning av lineære ligningssystemer.

Leksjon 4 av 413 trinn

Lineær algebra med NumPy er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

np.dot og @

Matrisemultiplikasjon: bruk np.dot(A, B) eller operatoren @ (Python 3.5+).

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]]
print(np.dot(A, B))   # same result

Elementvis multiplikasjon kontra matrisemultiplikasjon

* er elementvis multiplikasjon (Hadamard-produkt). @ er matrisemultiplikasjon. Forveksle dem aldri.

import numpy as np

A = np.array([[1,2],[3,4]])
B = np.array([[2,0],[1,3]])

print(A * B)    # [[ 2  0] [ 3 12]] — element-wise
print(A @ B)    # [[ 4  6] [10 12]] — matrix multiply

Transponering

arr.T transponerer arrayet (bytter om på rader og kolonner). For høyere dimensjoner bruker du np.transpose(arr, axes).

import numpy as np

A = np.array([[1,2,3],[4,5,6]])
print(A.shape)    # (2, 3)
print(A.T.shape)  # (3, 2)
print(A.T)

np.linalg.inv og np.linalg.det

Beregn den inverse matrisen og determinanten.

import numpy as np

A = np.array([[2.,1.],[1.,3.]])
print(np.linalg.inv(A))
# [[ 0.6 -0.2]
#  [-0.2  0.4]]
print(np.linalg.det(A))   # 5.0

Løse lineære systemer

np.linalg.solve(A, b) løser Ax = b effektivt ved hjelp av LU-dekomponering.

import numpy as np

# Solve: 2x + y = 5; x + 3y = 10
A = np.array([[2.,1.],[1.,3.]])
b = np.array([5.,10.])
x = np.linalg.solve(A, b)
print(x)   # [1.  3.]   → x=1, y=3

Egenverdier og egenvektorer

np.linalg.eig(A) returnerer egenverdier og egenvektorer. Bruk np.linalg.eigh for symmetriske matriser (raskere og mer stabilt).

import numpy as np

A = np.array([[4., 2.], [1., 3.]])
vals, vecs = np.linalg.eig(A)
print("Eigenvalues:", vals)    # [5.  2.]
print("Eigenvectors:\n", vecs)

SVD: singularverdidekomponering

np.linalg.svd(A) dekomponerer A i U, Sigma og Vt. Brukes til dimensjonsreduksjon (PCA) og pseudoinverser.

import numpy as np

A = np.array([[1,2],[3,4],[5,6]], dtype=float)
U, s, Vt = np.linalg.svd(A, full_matrices=False)
print("Singular values:", s)
# Reconstruct: U @ np.diag(s) @ Vt ≈ A

np.linalg.norm

Beregn normer for vektorer og matriser.

import numpy as np

v = np.array([3., 4.])
print(np.linalg.norm(v))           # 5.0  (Euclidean)
print(np.linalg.norm(v, ord=1))    # 7.0  (Manhattan)

A = np.eye(3)
print(np.linalg.norm(A, "fro"))    # 1.732 (Frobenius)

Kryssprodukter og ytreprodukter

np.cross(a, b) brukes til kryssprodukt i 3D. np.outer(a, b) brukes til ytreprodukt.

import numpy as np

a = np.array([1,0,0])
b = np.array([0,1,0])
print(np.cross(a, b))   # [0 0 1]

print(np.outer([1,2,3], [4,5]))
# [[ 4  5]
#  [ 8 10]
#  [12 15]]

np.linalg.lstsq

Løsning med minste kvadrater for overbestemte systemer (flere ligninger enn ukjente).

import numpy as np

# Fit y = ax + b  to noisy data
X = np.column_stack([np.arange(5), np.ones(5)])
y = np.array([1.1, 2.0, 3.1, 3.9, 5.2])

coeffs, _, _, _ = np.linalg.lstsq(X, y, rcond=None)
print(f"slope={coeffs[0]:.2f}, intercept={coeffs[1]:.2f}")

np.einsum

np.einsum uttrykker enhver tensorkontraksjon ved hjelp av Einsteins summekonvensjon – svært fleksibelt for kompleks lineær algebra.

import numpy as np

A = np.random.rand(3, 4)
B = np.random.rand(4, 5)

# Matrix multiplication via einsum:
C = np.einsum("ij,jk->ik", A, B)
print(C.shape)   # (3, 5)

# Trace:
M = np.eye(4)
print(np.einsum("ii->", M))   # 4.0

Hurtigsjekk

Hvilken operator utfører matrisemultiplikasjon i NumPy (Python 3.5+)?

Oppsummering

Bruk @ for matrisemultiplikasjon, np.linalg.solve for lineære systemer, np.linalg.eig for egenverdier og np.linalg.svd for dekomponering. np.einsum håndterer vilkårlige tensorkontraksjoner.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Lineær algebra med NumPy» gratis?

Ja – hele teksten i «Lineær algebra med NumPy» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Lineær algebra med NumPy»?

Utfør matriseprodukt, dekomponeringer og løsning av lineære ligningssystemer. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Lineær algebra med NumPy»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. NumPy-arrayer og dtypes
  2. Array-operasjoner og broadcasting
  3. Indeksering, utsnitt og avansert indeksering
  4. Lineær algebra med NumPy
← Tilbake til Python Academy