Pandas & NumPy Academy · leksjon

Tabellattributter og inspeksjon

Utforsk attributtene ndim, shape, size og dtype, og lær hvordan en tabell kan endres med reshape().

Leksjon 2 av 413 trinn

Tabellattributter og inspeksjon er en gratis leksjon i Pandas & NumPy 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 Pandas & NumPy Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Pandas & NumPy Academy inneholder totalt 4 leksjoner.

Hvorfor array-attributter er viktige

Før du arbeider med en array, bør du kjenne dens shape, dimensjoner og dtype. NumPy gir deg denne informasjonen umiddelbart gjennom lette attributter.

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
print('ndim:', a.ndim)    # 2
print('shape:', a.shape)  # (2, 3)
print('size:', a.size)    # 6
print('dtype:', a.dtype)  # int64

ndim: Antall dimensjoner

ndim forteller hvor mange dimensjoner en array har: en flat liste har 1, en liste med lister har 2, og ML-tensorer har ofte 3 eller 4.

import numpy as np

v = np.array([1, 2, 3])
print(v.ndim)   # 1

m = np.zeros((4, 5))
print(m.ndim)   # 2

t = np.ones((2, 3, 4))
print(t.ndim)   # 3

shape: Dimensjonstuplen

shape er en tuppel med én størrelse for hver dimensjon. For en 2D-array er det (rader, kolonner) – og du kan pakke den ut for å skrive fleksibel kode.

import numpy as np

a = np.arange(24).reshape(2, 3, 4)
print(a.shape)       # (2, 3, 4)

n_rows, n_cols = np.zeros((5, 7)).shape
print(n_rows, n_cols)  # 5 7

size: Totalt antall elementer

size gir det totale antallet elementer – alle verdiene i shape multiplisert med hverandre. Det er nyttig for å kontrollere at en reshape ikke har mistet noe.

import numpy as np

a = np.ones((3, 4, 5))
print(a.size)          # 60  (3*4*5)
print(np.prod(a.shape))# 60

# Memory estimate in bytes
print(a.size * a.itemsize, 'bytes')  # 480 bytes

dtype: Datatype for elementene

dtype beskriver typen til hvert element, mens itemsize forteller hvor mange byte det bruker. Hvis du bytter fra float64 til float32, halveres minnebruken, og koden kjører ofte raskere.

import numpy as np

a = np.array([1.5, 2.5, 3.5])
print(a.dtype)      # float64
print(a.itemsize)   # 8 bytes

b = a.astype(np.float32)
print(b.dtype)      # float32
print(b.itemsize)   # 4 bytes

nbytes: Totalt minneforbruk

nbytes er arrayens totale minneforbruk i byte – ganske enkelt size multiplisert med itemsize. Kontroller dette før og etter downcasting for å bekrefte at du faktisk sparte plass.

import numpy as np

a = np.ones((1000, 1000), dtype=np.float64)
print(a.nbytes)  # 8000000 (8 MB)

b = a.astype(np.float32)
print(b.nbytes)  # 4000000 (4 MB)

reshape(): Endre arrayens form

reshape gir arrayen en ny form uten å kopiere data, så lenge antallet elementer forblir det samme. Send inn -1, så finner NumPy ut av denne dimensjonen for deg.

import numpy as np

a = np.arange(12)
print(a.shape)          # (12,)

b = a.reshape(3, 4)
print(b.shape)          # (3, 4)

c = a.reshape(2, -1)    # -1 inferred as 6
print(c.shape)          # (2, 6)

Gjøre arrayer flate med ravel() og flatten()

Både ravel() og flatten() gjør en array om til 1D. Forskjellen er at ravel vanligvis deler minne (ingen kopi), mens flatten alltid lager en ny kopi.

import numpy as np

m = np.array([[1, 2, 3], [4, 5, 6]])

r = m.ravel()     # view (usually)
f = m.flatten()   # always a copy

print(r)  # [1 2 3 4 5 6]
print(f)  # [1 2 3 4 5 6]

Transponere arrayer

Attributtet .T gir deg den transponerte arrayen – rader og kolonner byttes om. Det koster ingenting (ingen data kopieres) og er viktig for å tilpasse matriser til hverandre.

import numpy as np

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

strides: Minneoppsett

strides viser hvor mange byte NumPy går gjennom i minnet for hver dimensjon. Derfor er transponering kostnadsfri – den bytter bare stride-verdiene.

import numpy as np

a = np.ones((3, 4), dtype=np.float64)
print(a.strides)    # (32, 8)  — 4 cols x 8 bytes, 1 col x 8 bytes

b = a.T
print(b.strides)    # (8, 32)  — strides swapped, no data copy

Kontrollere views og kopier

En view deler minne med originalen, så en endring i den ene endrer begge. En kopi er uavhengig. Bruk np.shares_memory(a, b) for å kontrollere hvilken av dem du har.

import numpy as np

a = np.arange(6)
b = a.reshape(2, 3)  # view
print(np.shares_memory(a, b))  # True

c = a.copy()
print(np.shares_memory(a, c))  # False

Kort kontroll

Test forståelsen din av NumPy-arrayattributter i denne leksjonen.

Oppsummering av leksjonen

Flott fremgang! ndim, shape og size beskriver strukturen, dtype beskriver dataene, og reshape returnerer en view, mens flatten alltid kopierer. Neste tema er arrayberegninger.

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
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Tabellattributter og inspeksjon» gratis?

Ja – hele teksten i «Tabellattributter og inspeksjon» 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 Pandas & NumPy Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Pandas & NumPy Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Tabellattributter og inspeksjon»?

Utforsk attributtene ndim, shape, size og dtype, og lær hvordan en tabell kan endres med reshape(). Du øver på Pandas & NumPy 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 Pandas & NumPy Academy?

Ingen tidligere erfaring er nødvendig. Pandas & NumPy 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 «Tabellattributter og inspeksjon»?

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 Pandas & NumPy Academy-leksjonen?

Ja. Alle Pandas & NumPy 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. Opprette NumPy-tabeller
  2. Tabellattributter og inspeksjon
  3. Elementvis aritmetikk
  4. Tabelloppdeling og indeksering
← Tilbake til Pandas & NumPy Academy