Python abs() Funktion: Exempel på absolut värde

⚡ Smart sammanfattning

Python abs() är en inbyggd funktion som returnerar absolutvärdet av ett tal, det vill säga dess avstånd från noll utan tecken. Den accepterar heltal, flyttal och komplexa tal och returnerar storleken för komplexa indata.

  • 🔢 Absolut värde: abs() tar bort tecknet för ett tal och returnerar dess avstånd från noll, så abs(-25) och abs(25) ger båda 25.
  • 🧮 Nummertyper: Det enskilda argumentet kan vara ett heltal, ett flyttal eller ett komplext tal, och returtypen matchar indata.
  • 🔟 Komplex magnitud: För ett komplext tal som (3+10j) returnerar abs() dess magnitud, kvadratroten av de kvadrerade reella och imaginära delarna.
  • 📋 listor: abs() hanterar ett tal i taget, så en förståelse som [abs(n) för n i nums] tillämpar den på varje element.
  • ⚖️ abs() kontra math.fabs(): Den inbyggda abs()-modulen behåller inmatningstypen och stöder komplexa tal, medan math.fabs() alltid returnerar ett flyttal och behöver math-modulen.
  • 🤖 AI-hjälp: AI-verktyg som GitHub Copilot genererar abs()- och NumPy-anrop för np.abs()-uppgifter som medelvärde för absolut fel från en kort prompt.

Python abs() Funktion

Python magmuskler()

Python magmuskler() är en inbyggd funktion som är tillgänglig i standardbiblioteket för PythonDen returnerar absolutvärdet för det givna talet. Det absoluta värdet av ett tal är värdet utan hänsyn till dess tecken. Talet kan vara ett heltal, ett flyttal eller ett komplext tal. Om det givna talet är komplext returnerar den dess storlek.

syntax

Syntaxen för abs()-funktionen visas nedan:

abs(value)

Parametrar (värde)

Ingångsvärdet som ska ges till abs() för att få det absoluta värdet. Det kan vara ett heltal, ett flytande tal eller ett komplext tal.

Returvärde:

Funktionen abs() returnerar absolutvärdet för det givna talet.

  • Om indata är ett heltal, kommer returvärdet också att vara ett heltal.
  • Om indata är ett flyttal, kommer returvärdet också att vara ett flyttal.
  • Om inmatningen är ett komplext tal, kommer returvärdet att vara storleken på inmatningen.

Exempel

Följande exempel visar hur funktionen abs() tillämpas på heltal, flyttal och komplexa värden.

Code Exempel 1: Heltal och flyttal

För att få absolutvärdet av ett heltal och ett flyttal, kolla den här koden:

# testing abs() for an integer and float
  int_num = -25
  float_num = -10.50
  print("The absolute value of an integer number is:", abs(int_num))
  print("The absolute value of a float number is:", abs(float_num))

Produktion:

The absolute value of an integer number is: 25
The absolute value of a float number is: 10.5

Exempel 2: Komplext tal

För att få det absoluta värdet av ett komplext tal, använd denna kod:

# testing abs() for a complex number
complex_num = (3+10j)
print("The magnitude of the complex number is:", abs(complex_num))

Produktion:

The magnitude of the complex number is: 10.44030650891055

Hur man hittar absolutvärdet av en lista i Python

Funktionen abs() fungerar på ett enda tal, så att skicka en hel lista till den genererar ett TypeError. För att tillämpa den på varje element i en lista, använd en listförståelse som anropar abs() på varje element:

numbers = [12, 30, -33, -22, 77, -100]
abs_numbers = [abs(num) for num in numbers]
print(abs_numbers)

Produktion:

[12, 30, 33, 22, 77, 100]

Förståelsen behåller den ursprungliga ordningen och returnerar en ny lista med positiva värden. Du kan uppnå samma resultat med den inbyggda map()-funktionen, till exempel. list(map(abs, numbers)), vilket tillämpar abs() på varje element utan att skriva en explicit loop.

  • Använd en listförståelse när du även vill filtrera eller transformera värdena.
  • Använd map() för ett kort, läsbart anrop som tillämpar abs() direkt.
  • För stora numeriska datamängder är en NumPy-array med np.abs() snabbare än en Python slinga.

Python abs() kontra math.fabs()

Python erbjuder två sätt att få ett absolutvärde: den inbyggda abs()-funktionen och matematikmodulens fabs()-funktion. De ser lika ut men beter sig olika:

import math

print(abs(-7))          # 7 (int is unchanged)
print(math.fabs(-7))    # 7.0 (float result)

Produktion:

7
7.0

De viktigaste skillnaderna mellan de två funktionerna är:

  • Returtyp: abs() bevarar indatatypen och returnerar ett heltal för ett heltal, medan math.fabs() alltid returnerar ett flyttal.
  • Importera: abs() är alltid tillgängligt, men math.fabs() kräver import math.
  • Komplexa tal: abs() returnerar storleken på ett komplext tal, medan math.fabs() genererar ett TypeError för komplex inmatning.

Praktiska tillämpningar av Python abs() Funktion

Eftersom teckeninformation ignoreras är abs() användbart när endast storleken på ett värde spelar roll och inte dess riktning. Ett vanligt exempel är att hitta skillnaden mellan två avläsningar:

temp_morning = 12
temp_night = -5
print("Temperature change:", abs(temp_morning - temp_night))

Produktion:

Temperature change: 17

Daglig användning av absolutvärdet inkluderar:

  • Avstånd och skillnader: mäta gapet mellan två punkter, temperaturer eller tidsstämplar oavsett vilket värde som är störst.
  • Felmätvärden: beräkna det absoluta felet mellan ett förutsagt värde och ett faktiskt värde.
  • Toleranskontroller: testa om ett resultat är tillräckligt nära ett mål, som i abs(actual - expected) < 0.01.
  • Finans: rapportering av storleken på en vinst eller förlust utan dess tecken.

Liksom round()-funktionen, abs() är en inbyggd modul som du kan anropa direkt utan att importera någon modul.

Vanliga frågor

Nej. abs() returnerar ett nytt värde och ändrar aldrig dess argument, eftersom tal i Python är oföränderliga. För att behålla resultatet, tilldela det till en variabel, till exempel positiv = abs(tal). Den ursprungliga variabeln har fortfarande sitt teckenvärde.

Nej. Att skicka en sträng ger upphov till TypeError: ogiltig operandtyp för abs(): 'str', eftersom abs() bara accepterar heltal, flyttal eller komplexa tal. För att mäta en sträng istället, använd len(), som returnerar hur många tecken den innehåller.

Du kan beräkna det manuellt. För ett värde x returnerar max(x, -x) absolutvärdet, och (x ** 2) ** 0.5 fungerar även för reella tal. Den inbyggda abs()-funktionen är dock tydligare, snabbare och hanterar även komplexa tal.

Nej. Den vertikala stapelnotationen |x| är matematisk, inte Python syntax; i Python Symbolen | är den bitvisa ELLER-operatorn. För att få ett absolutvärde måste du anropa den inbyggda abs()-funktionen, till exempel abs(-8), som returnerar 8.

__abs__ är dunder-metoden som abs() anropar bakom kulisserna. När du skriver abs(obj), Python kör obj.__abs__(). Genom att definiera __abs__ i din egen klass kan abs() arbeta på anpassade objekt, såsom en vektor eller en pengatyp.

Använd de vektoriserade versionerna istället för en loop. NumPys np.abs(array) returnerar en ny array där varje element görs positivt, och en pandas-serie exponerar Series.abs(). Båda tillämpar absolutvärdet över alla element samtidigt, vilket är snabbare för stora datamängder.

abs() ligger till grund för fel- och avståndsmätningar. Medelabsolutfel (MAE) och L1-förlust summerar de absoluta skillnaderna mellan förutsägelser och mål, och absoluta värden mäter gradientmagnituder. För hela arrayer tillämpar NumPy np.abs() samma operation effektivt över varje element.

GitHub Copilot föreslår abs()-anrop, listförståelser som [abs(n) för n i nums] och NumPy np.abs()-rader direkt från en kort kommentar. Den kan också bygga upp en mean absolute error-funktion, vilket låter dig bekräfta logiken istället för att skriva standardfel.

Sammanfatta detta inlägg med: