Lær AI med Python · Lektion

Python-datatyper til data science

int, float, complex, bool, str — sådan påvirker præcision og typevalg dataanalysen.

Lektion 3 af 413 trin

Python-datatyper til data science er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Tal i datalogi

Python har to grundlæggende numeriske typer: int (heltal med vilkårlig præcision) og float (64-bit IEEE 754-decimaltal). Når du vælger den rigtige, undgår du subtile datafejl.

int er nøjagtig og uden øvre grænse

Python-heltal løber aldrig over. De kan vokse så meget, som hukommelsen tillader, hvilket er godt til nøjagtige optællinger og store fakulteter.

big = 2 ** 200
print(big)
print(type(big))   # <class 'int'>

Præcisionsfaldgruber ved float

Float-værdier kan ikke repræsentere alle decimaltal nøjagtigt. Den klassiske overraskelse er, at 0.1 + 0.2 ikke er nøjagtigt 0.3.

print(0.1 + 0.2)          # 0.30000000000000004
print(0.1 + 0.2 == 0.3)   # False

Sikker sammenligning af float-værdier

Test aldrig float-værdier med ==. Brug i stedet math.isclose med en tolerance.

import math
print(math.isclose(0.1 + 0.2, 0.3))  # True

Decimal til pengebeløb

Til valuta skal du bruge decimal.Decimal, som gemmer nøjagtige værdier i titalsystemet. Opret altid Decimal-værdier ud fra strenge, ikke float-værdier, så du undgår at overføre float-fejl.

from decimal import Decimal
price = Decimal("0.10") + Decimal("0.20")
print(price)   # 0.30

bool er en underklasse af int

I Python er True lig med 1, og False er lig med 0. Derfor kan du summere boolske værdier for at tælle træffere.

mask = [True, False, True, True]
print(sum(mask))      # 3 matches
print(True + True)    # 2

Optælling med boolske værdier

Denne opførsel, hvor bool fungerer som int, findes overalt i NumPy og pandas: Når du summerer en boolsk maske, tæller du, hvor mange rækker der opfylder en betingelse.

ages = [12, 20, 35, 17, 40]
adults = sum(a >= 18 for a in ages)
print(adults)   # 3

Undersøgelse af typen med type()

type(x) returnerer den nøjagtige klasse for en værdi. Det er nyttigt, når en kolonne uventet indeholder strenge i stedet for tal.

print(type(5))      # <class 'int'>
print(type(5.0))    # <class 'float'>
print(type("5"))    # <class 'str'>

Kontrol af typen med isinstance()

Foretræk isinstance frem for type ==, fordi det tager højde for nedarvning. Bemærk, at en boolsk værdi består et int-tjek.

print(isinstance(5, int))        # True
print(isinstance(True, int))     # True (bool subclasses int)
print(isinstance(5.0, (int, float)))  # True

Faldgruber ved typekonvertering

Blanding af typer medfører stiltiende konvertering. Heltalsdivision med float-værdier giver float-værdier, mens sammenkædning af et tal og en streng udløser en TypeError. Ryd tidligt op i dine datatyper.

print(5 / 2)        # 2.5  (true division always float)
print(5 // 2)       # 2    (floor division)
# "id-" + 5         # TypeError
print("id-" + str(5))  # id-5

Float-overraskelser ved aggregering

Når du summerer mange float-værdier, ophobes små fejl. Til store datasæt bør du foretrække NumPy, som bruger parvis summering for at reducere afvigelsen.

vals = [0.1] * 10
print(sum(vals))    # 0.9999999999999999
# NumPy: np.sum(vals) is more numerically stable

Hurtig kontrol

Test dit kendskab til Python-typer.

Opsamling

Vigtige numeriske fakta i dataarbejde:

  • int er nøjagtig og uden øvre grænse
  • float er omtrentlig; brug math.isclose i stedet for ==
  • Decimal("...") til pengebeløb
  • bool er en int: sum(mask) tæller
  • type() viser klassen, og isinstance() tager højde for nedarvning
  • Vær opmærksom på stiltiende typekonvertering ved division og sammenkædning
Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Python-datatyper til data science” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Python-datatyper til data science”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Python-datatyper til data science”?

int, float, complex, bool, str — sådan påvirker præcision og typevalg dataanalysen. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Python-datatyper til data science”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Virtuelle miljøer og pip
  2. Jupyter Notebooks til data science
  3. Python-datatyper til data science
  4. Arbejde med Python REPL og IPython
← Tilbage til Lær AI med Python