Hoppa till innehållet
AI-grafen
D· AI-utvecklareprogrammering· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20

NumPy — arrayer och vektorisering

Kunna skapa och räkna med arrayer, broadcasting och axlar utan Python-loopar.

Förkunskaper

Intuition

NumPy ger dig arrayer: rutnät av tal med fast typ, lagrade sammanhängande i minnet. Två saker följer av det:

  1. Vektorisering — a + b adderar hela arrayer i C-kod i stället för en Python-loop. Ofta 50–100 gånger snabbare.
  2. Broadcasting — arrayer med olika form kan kombineras om formerna är kompatibla: en (3, 4)-array plus en (4,)-array lägger till raden på varje rad.

Axlar är det som förvirrar mest: axis=0 går nedåt (över rader → ett värde per kolumn), axis=1 går åt höger (över kolumner → ett värde per rad).

Kod

import numpy as np

X = np.arange(12).reshape(3, 4)
print(X)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

print(X.sum(axis=0))        # [12 15 18 21]  ett värde per kolumn
print(X.sum(axis=1))        # [ 6 22 38]     ett värde per rad
print(X.shape, X.dtype)     # (3, 4) int64

# broadcasting: (3,4) + (4,) → raden läggs till varje rad
print(X + np.array([100, 200, 300, 400]))

# standardisera kolumnvis — grunden för feature-skalning
Xs = (X - X.mean(axis=0)) / X.std(axis=0)
print(np.round(Xs.mean(axis=0), 6))     # [0. 0. 0. 0.]

# maskering i stället för loop + if
print(X[X % 2 == 0])                     # [ 0  2  4  6  8 10]

Fällan: X.mean(axis=0) ger form (4,) — om du vill behålla dimensionen för broadcasting bakåt, använd keepdims=True.

Behärskning innebär

  • Skapar arrayer och räknar utan Python-loopar
  • Använder axlar och broadcasting korrekt
  • Förklarar varför vektorisering är snabbare

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser