Python abs() Functie: Voorbeelden van absolute waarden

⚡ Slimme samenvatting

Python abs() is een ingebouwde functie die de absolute waarde van een getal retourneert, oftewel de afstand tot nul zonder teken. De functie accepteert gehele getallen, drijvende-kommagetallen en complexe getallen, waarbij voor complexe invoer de absolute waarde wordt geretourneerd.

  • 🔢 Absolute waarde: abs() verwijdert het teken van een getal en geeft de afstand tot nul terug, dus zowel abs(-25) als abs(25) geven 25.
  • 🧮 Typen getallen: Het enige argument kan een geheel getal, een drijvende-komma getal of een complex getal zijn, en het retourtype komt overeen met de invoer.
  • 🔟 Complexe grootte: Voor een complex getal zoals (3+10j) geeft abs() de absolute waarde terug, oftewel de wortel van het kwadraat van het reële en imaginaire deel.
  • 📋 lijsten: abs() behandelt één getal tegelijk, dus een list comprehension zoals [abs(n) for n in nums] past het toe op elk element.
  • abs() versus math.fabs(): De ingebouwde functie abs() behoudt het invoertype en ondersteunt complexe getallen, terwijl math.fabs() altijd een float retourneert en de math-module vereist.
  • 🤖 AI-assistentie: AI-tools zoals GitHub Copilot genereren abs() en NumPy np.abs() aanroepen voor taken zoals de gemiddelde absolute fout op basis van een korte prompt.

Python abs() Functie

Python buikspieren()

Python buikspieren() is een ingebouwde functie die beschikbaar is in de standaardbibliotheek van PythonDeze functie retourneert de absolute waarde van het gegeven getal. De absolute waarde van een getal is de waarde zonder rekening te houden met het teken. Het getal kan een geheel getal, een drijvende-komma getal of een complex getal zijn. Als het gegeven getal complex is, retourneert de functie de absolute waarde ervan.

Syntaxis

De syntaxis van de functie abs() wordt hieronder weergegeven:

abs(value)

Parameters (waarde)

De invoerwaarde die aan abs() moet worden gegeven om de absolute waarde te krijgen. Het kan een geheel getal, een float of een complex getal zijn.

Winstwaarde:

De functie abs() geeft de absolute waarde van het gegeven getal terug.

  • Als de invoer een geheel getal is, zal de retourwaarde ook een geheel getal zijn.
  • Als de invoer een zweefgetal is, zal de retourwaarde ook een zweefgetal zijn.
  • Als de invoer een complex getal is, is de retourwaarde de grootte van de invoer.

Voorbeelden

De volgende voorbeelden laten zien hoe de functie abs() wordt toegepast op gehele getallen, drijvende-kommagetallen en complexe getallen.

Code Voorbeeld 1: Geheel getal en zwevendekommagetal

Om de absolute waarde van een geheel getal en een drijvende-komma getal te berekenen, bekijk dan deze code:

# 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))

Output:

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

Voorbeeld 2: Complex getal

Om de absolute waarde van een complex getal te berekenen, gebruik je deze code:

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

Output:

The magnitude of the complex number is: 10.44030650891055

Hoe vind je de absolute waarde van een lijst? Python

De functie `abs()` werkt op één enkel getal, dus het doorgeven van een hele lijst aan deze functie levert een `TypeError` op. Om de functie op elk item in een lijst toe te passen, gebruikt u een list comprehension die `abs()` op elk element aanroept:

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

Output:

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

De list comprehension behoudt de oorspronkelijke volgorde en retourneert een nieuwe lijst met positieve waarden. Je kunt hetzelfde resultaat bereiken met de ingebouwde map()-functie, bijvoorbeeld. list(map(abs, numbers)), waarbij abs() op elk element wordt toegepast zonder een expliciete lus te schrijven.

  • Gebruik een list comprehension als je de waarden ook wilt filteren of transformeren.
  • Gebruik map() voor een korte, leesbare aanroep die abs() direct toepast.
  • Voor grote numerieke datasets is een NumPy-array met np.abs() sneller dan een Python lus.

Python abs() versus math.fabs()

Python biedt twee manieren om een ​​absolute waarde te verkrijgen: de ingebouwde functie abs() en de functie fabs() van de math-module. Ze lijken op elkaar, maar gedragen zich anders:

import math

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

Output:

7
7.0

De belangrijkste verschillen tussen de twee functies zijn:

  • Retourtype: abs() behoudt het invoertype en retourneert een integer voor een integer, terwijl math.fabs() altijd een float retourneert.
  • Importeren: abs() is altijd beschikbaar, maar math.fabs() vereist import math.
  • Complexe getallen: abs() geeft de absolute waarde van een complex getal terug, terwijl math.fabs() een TypeError genereert voor complexe invoer.

Praktische toepassingen van de Python abs() Functie

Omdat abs() geen rekening houdt met het teken, is de functie nuttig wanneer alleen de grootte van een waarde van belang is en niet de richting ervan. Een veelvoorkomend voorbeeld is het berekenen van het verschil tussen twee metingen:

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

Output:

Temperature change: 17

Voorbeelden van alledaags gebruik van de absolute waarde zijn:

  • Afstanden en verschillen: Het meten van het verschil tussen twee punten, temperaturen of tijdstempels, ongeacht welke waarde groter is.
  • Foutstatistieken: Het berekenen van de absolute fout tussen een voorspelde waarde en een werkelijke waarde.
  • Tolerantiecontroles: testen of een resultaat voldoende dicht bij een doelwaarde ligt, zoals in abs(actual - expected) < 0.01.
  • Financiën: Het rapporteren van de omvang van een winst of verlies zonder het teken ervan.

Zoals het round() functie`abs()` is een ingebouwde functie die je direct kunt aanroepen zonder een module te importeren.

Veelgestelde vragen

Nee. abs() retourneert een nieuwe waarde en wijzigt nooit het argument, omdat getallen in Python zijn onveranderlijk. Om het resultaat te behouden, wijs je het toe aan een variabele, bijvoorbeeld positief = abs(getal). De oorspronkelijke variabele behoudt zijn getekende waarde.

Nee. Het doorgeven van een tekenreeks geeft een TypeError: bad operand type for abs(): 'str', omdat abs() alleen gehele getallen, drijvende-kommagetallen of complexe getallen accepteert. Om een ​​tekenreeks te meten, gebruik je in plaats daarvan len(), die het aantal tekens retourneert.

Je kunt het handmatig berekenen. Voor een waarde x geeft max(x, -x) de absolute waarde terug, en (x ** 2) ** 0.5 werkt ook voor reële getallen. De ingebouwde functie abs() is echter duidelijker, sneller en kan ook complexe getallen verwerken.

Nee. De notatie met verticale strepen |x| is wiskundig, niet wiskundig. Python syntaxis; in Python Het symbool | is de bitwise OR-operator. Om een ​​absolute waarde te krijgen, moet je de ingebouwde functie abs() aanroepen, bijvoorbeeld abs(-8), die 8 retourneert.

__abs__ is de dunder-methode die abs() achter de schermen aanroept. Wanneer je abs(obj) schrijft, Python Voert obj.__abs__() uit. Door __abs__ in je eigen klasse te definiëren, kan abs() werken op aangepaste objecten, zoals een vector of een geldtype.

Gebruik de gevectoriseerde versies in plaats van een lus. NumPy's `np.abs(array)` retourneert een nieuwe array waarbij elk element positief wordt gemaakt, en een `pandas Series` biedt `Series.abs()`. Beide passen de absolute waarde in één keer toe op alle elementen, wat sneller is voor grote datasets.

De functie abs() vormt de basis voor fout- en afstandsmetrieken. De gemiddelde absolute fout (MAE) en L1-verlies berekenen de som van de absolute verschillen tussen voorspellingen en doelen, en absolute waarden meten de grootte van de gradiënt. Voor hele arrays past NumPy np.abs() dezelfde bewerking efficiënt toe op elk element.

GitHub Copilot suggereert direct vanuit een korte opmerking aanroepen van abs(), list comprehensions zoals [abs(n) for n in nums] en NumPy np.abs()-regels. Het kan ook een functie voor de gemiddelde absolute fout genereren, waardoor je de logica kunt controleren in plaats van zelf standaardcode te schrijven.

Vat dit bericht samen met: