Python Academy · leksjon

Array-operasjoner og broadcasting

Utfør vektorisert aritmetikk og forstå reglene for broadcasting.

Leksjon 2 av 413 trinn

Array-operasjoner og broadcasting er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 2 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.

Vektoriserte aritmetiske operasjoner

NumPy utfører aritmetikk element for element over hele arrayer uten Python-løkker – operasjonene kjøres i optimalisert C-kode.

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)    # [5 7 9]
print(a * b)    # [4 10 18]
print(a ** 2)   # [1 4 9]

Universelle funksjoner (ufuncs)

NumPys ufuncs bruker C-funksjoner på elementnivå: np.sqrt, np.exp, np.log, np.sin og så videre.

import numpy as np

x = np.linspace(0, np.pi, 5)
print(np.sin(x))   # [0. 0.707 1. 0.707 0.]
print(np.exp([1.0, 2.0, 3.0]))   # [2.718 7.389 20.086]

Reduksjonsoperasjoner

Reduser et array til en skalar (eller et array med færre dimensjoner) med np.sum, np.mean, np.max, np.min, np.std.

import numpy as np

m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(m))          # 21
print(np.sum(m, axis=0))  # [5 7 9]  — sum each column
print(np.sum(m, axis=1))  # [6 15]   — sum each row

Regler for broadcasting

Broadcasting utvider mindre arrayer slik at de passer til større arrayer – uten å kopiere data. Regel: Dimensjonene justeres fra høyre, og dimensjoner med størrelse 1 utvides.

import numpy as np

a = np.array([[1], [2], [3]])  # shape (3,1)
b = np.array([10, 20, 30])     # shape (3,)

print(a + b)
# [[11 21 31]
#  [12 22 32]
#  [13 23 33]]

Broadcasting av skalaroperasjoner

En skalar kringkastes til alle elementene i arrayet.

import numpy as np

arr = np.arange(6).reshape(2, 3)
print(arr + 10)
# [[10 11 12]
#  [13 14 15]]
print(arr * 0.5)
# [[0.  0.5 1. ]
#  [1.5 2.  2.5]]

Sammenligninger og boolske operasjoner

Sammenligninger produserer boolske arrayer. Kombiner dem med &, |, ~ (ikke Python and/or/not).

import numpy as np

arr = np.array([1, 5, 3, 8, 2])
print(arr > 3)           # [False  True False  True False]
print(arr[(arr > 2) & (arr < 7)])  # [5 3]

where()

np.where(condition, x, y) returnerer elementer fra x der verdien er True, og fra y der verdien er False.

import numpy as np

arr = np.array([-2, 3, -1, 4, 0])
result = np.where(arr >= 0, arr, 0)  # clip negatives to 0
print(result)   # [0 3 0 4 0]

Aggregering langs akser

Angi axis= for å redusere langs en bestemt dimensjon i et flerdimensjonalt array.

import numpy as np

data = np.arange(12).reshape(3, 4)
print(data.mean(axis=0))   # mean of each column → shape (4,)
print(data.mean(axis=1))   # mean of each row → shape (3,)

cumsum og diff

np.cumsum beregner kumulative summer, mens np.diff beregner forskjeller mellom påfølgende elementer.

import numpy as np

prices = np.array([100, 110, 105, 115])
print(np.cumsum(prices))          # [100 210 315 430]
print(np.diff(prices))            # [10 -5 10] (daily changes)

Vektoriserte strengoperasjoner

np.char tilbyr vektoriserte strengoperasjoner på arrayer med strenger.

import numpy as np

words = np.array(["apple", "banana", "cherry"])
print(np.char.upper(words))       # ['APPLE' 'BANANA' 'CHERRY']
print(np.char.startswith(words, "a"))  # [True False False]

Ytelse sammenlignet med Python-lister

NumPy er 10–100 ganger raskere enn tilsvarende Python-løkker for numerisk arbeid, fordi operasjonene kjøres i C uten belastningen fra Python-tolken.

import numpy as np, time

n = 1_000_000

start = time.perf_counter()
python_sum = sum(i**2 for i in range(n))
print(f"Python: {time.perf_counter()-start:.3f}s")

arr = np.arange(n)
start = time.perf_counter()
numpy_sum = (arr**2).sum()
print(f"NumPy:  {time.perf_counter()-start:.3f}s")

Hurtigsjekk

Hvilken form får resultatet når et array med shape-(3,1) legges sammen med et array med shape-(3,)?

Oppsummering

NumPy-operasjoner utføres element for element i C (uten Python-løkker). Broadcasting utvider kompatible former uten å kopiere data. Bruk axis= for reduksjoner langs bestemte dimensjoner. Ufuncs (np.sin, np.exp og så videre) utfører operasjoner element for element i C-hastighet.

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 «Array-operasjoner og broadcasting» gratis?

Ja – hele teksten i «Array-operasjoner og broadcasting» 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 «Array-operasjoner og broadcasting»?

Utfør vektorisert aritmetikk og forstå reglene for broadcasting. 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 2 av 4.

Hvor lang tid tar leksjonen «Array-operasjoner og broadcasting»?

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