Python Funkce abs(): Příklady absolutní hodnoty

⚡ Chytré shrnutí

Python abs() je vestavěná funkce, která vrací absolutní hodnotu čísla, tj. jeho vzdálenost od nuly bez znaménka. Přijímá celá čísla, čísla s plovoucí desetinnou čárkou a komplexní čísla a vrací velikost komplexních vstupů.

  • 🔢 Absolutní hodnota: abs() odstraní znaménko čísla a vrátí jeho vzdálenost od nuly, takže abs(-25) i abs(25) obě vrátí 25.
  • 🧮 Typy čísel: Jediný argument může být celé číslo, číslo s plovoucí desetinnou čárkou nebo komplexní číslo a návratový typ odpovídá vstupu.
  • 🔟 Komplexní velikost: Pro komplexní číslo, jako například (3+10j), vrací abs() jeho velikost, tedy druhou odmocninu z druhé mocniny reálné a imaginární části.
  • ???? Seznamy: abs() zpracovává vždy jen jedno číslo, takže comprehension jako [abs(n) for n in nums] jej aplikuje na každý prvek.
  • 🇧🇷 abs() vs. math.fabs(): Vestavěná funkce abs() zachovává vstupní typ a podporuje komplexní čísla, zatímco funkce math.fabs() vždy vrací číslo s plovoucí čárkou a potřebuje modul math.
  • 🤖 Asistence AI: Nástroje umělé inteligence, jako je GitHub Copilot, generují volání abs() a NumPy np.abs() pro úkoly, jako je průměrná absolutní chyba, z krátkého promptního řádku.

Python Funkce abs().

Python břišní svaly()

Python břišní svaly() je vestavěná funkce dostupná ve standardní knihovně PythonVrací absolutní hodnotu daného čísla. Absolutní hodnota čísla je hodnota bez ohledu na znaménko. Číslo může být celé číslo, číslo s plovoucí desetinnou čárkou nebo komplexní číslo. Pokud je dané číslo komplexní, vrátí jeho velikost.

Syntax

Syntaxe funkce abs() je uvedena níže:

abs(value)

Parametry (hodnota)

Vstupní hodnota, která má být zadána do abs() pro získání absolutní hodnoty. Může to být celé číslo, plovoucí číslo nebo komplexní číslo.

Návratová hodnota:

Funkce abs() vrací absolutní hodnotu zadaného čísla.

  • Pokud je vstup celé číslo, návratová hodnota bude také celé číslo.
  • Pokud je vstupem číslo s plovoucí čárkou, návratová hodnota bude také číslo s plovoucí čárkou.
  • Pokud je vstupem komplexní číslo, návratová hodnota bude velikost vstupu.

Příklady

Následující příklady ukazují funkci abs() aplikovanou na celočíselné, float a komplexní hodnoty.

Code Příklad 1: Celé číslo a číslo s desetinnou čárkou

Chcete-li získat absolutní hodnotu celého čísla a čísla s desetinnou čárkou, podívejte se na tento kód:

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

Výstup:

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

Příklad 2: Komplexní číslo

Chcete-li získat absolutní hodnotu komplexního čísla, použijte tento kód:

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

Výstup:

The magnitude of the complex number is: 10.44030650891055

Jak najít absolutní hodnotu seznamu v Python

Funkce abs() pracuje s jedním číslem, takže předání celého seznamu jí vyvolá chybu TypeError. Chcete-li ji aplikovat na každou položku v seznamu, použijte rozpoznávání seznamu, které volá abs() pro každý prvek:

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

Výstup:

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

Pochopení zachovává původní pořadí a vrací nový seznam kladných hodnot. Stejného výsledku můžete dosáhnout například pomocí vestavěné funkce map(). list(map(abs, numbers)), který aplikuje abs() na každý prvek bez zápisu explicitní smyčky.

  • Pokud chcete hodnoty také filtrovat nebo transformovat, použijte seznam s porozuměním.
  • Pro krátké a čitelné volání, které přímo aplikuje abs(), použijte map().
  • Pro velké číselné datové sady je pole NumPy s np.abs() rychlejší než Python smyčka.

Python abs() vs. math.fabs()

Python nabízí dva způsoby, jak získat absolutní hodnotu: vestavěnou funkci abs() a funkci fabs() modulu math. Vypadají podobně, ale chovají se odlišně:

import math

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

Výstup:

7
7.0

Klíčové rozdíly mezi těmito dvěma funkcemi jsou:

  • Typ návratové hodnoty: abs() zachovává vstupní typ a vrací celé číslo pro celé číslo, zatímco math.fabs() vždy vrací číslo s desetinnou čárkou.
  • Import: abs() je vždy k dispozici, ale math.fabs() vyžaduje import math.
  • Komplexní čísla: abs() vrací velikost komplexního čísla, zatímco math.fabs() vyvolá chybu TypeError pro komplexní vstup.

Praktické aplikace Python Funkce abs().

Protože zahazuje informaci o znaménku, je abs() užitečná vždy, když záleží pouze na velikosti hodnoty a nikoli na jejím směru. Běžným příkladem je nalezení rozdílu mezi dvěma údaji:

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

Výstup:

Temperature change: 17

Mezi každodenní použití absolutní hodnoty patří:

  • Vzdálenosti a rozdíly: měření rozdílu mezi dvěma body, teplotami nebo časovými razítky bez ohledu na to, která hodnota je větší.
  • Metriky chyb: výpočet absolutní chyby mezi předpokládanou hodnotou a skutečnou hodnotou.
  • Kontroly tolerancí: testování, zda je výsledek dostatečně blízko cíli, jako například v abs(actual - expected) < 0.01.
  • Finance: uvádění velikosti zisku nebo ztráty bez znaménka.

Stejně jako Funkce round(), abs() je vestavěná funkce, kterou můžete volat přímo bez importu jakéhokoli modulu.

Nejčastější dotazy

Ne. abs() vrací novou hodnotu a nikdy nemodifikuje svůj argument, protože čísla v Python jsou neměnné. Chcete-li výsledek zachovat, přiřaďte jej proměnné, například kladné = abs(číslo). Původní proměnná si stále uchovává svou hodnotu se znaménkem.

Ne. Předání řetězce vyvolá chybu TypeError: bad operand type for abs(): 'str', protože abs() přijímá pouze celá čísla, čísla s desetinnou čárkou nebo komplexní čísla. Chcete-li řetězec změřit, použijte funkci len(), která vrací počet znaků, které řetězec obsahuje.

Můžete to vypočítat ručně. Pro hodnotu x vrátí max(x, -x) absolutní hodnotu a (x ** 2) ** 0.5 funguje i pro reálná čísla. Vestavěná funkce abs() je však přehlednější, rychlejší a zvládá i komplexní čísla.

Ne. Zápis svislé čáry |x| je matematický, nikoli Python syntaxe; v Python Symbol | je bitový operátor OR. Chcete-li získat absolutní hodnotu, musíte zavolat vestavěnou funkci abs(), například abs(-8), která vrátí 8.

__abs__ je metoda Dunder, kterou abs() volá v zákulisí. Když napíšete abs(obj), Python spustí obj.__abs__(). Definování __abs__ ve vlastní třídě umožňuje abs() pracovat s vlastními objekty, jako je vektor nebo typ peněz.

Použijte vektorizované verze místo smyčky. NumPyho np.abs(array) vrací nové pole, kde každý prvek je kladný, a PANDAS Series zpřístupňuje Series.abs(). Oba aplikují absolutní hodnotu na všechny prvky najednou, což je rychlejší pro velké datové sady.

abs() je základem metrik chyb a vzdálenosti. Průměrná absolutní chyba (MAE) a ztráta L1 součet absolutních rozdílů mezi predikcemi a cíli a absolutní hodnoty měří magnitudy gradientů. Pro celá pole NumPy np.abs() efektivně aplikuje stejnou operaci na každý prvek.

GitHub Copilot navrhuje volání abs(), výpisy comprehenzí jako [abs(n) for n in nums] a řádky NumPy np.abs() přímo z krátkého komentáře. Může také vytvořit funkci pro propočet absolutní chyby průměru, což vám umožní ověřit logiku namísto psaní standardního textu.

Shrňte tento příspěvek takto: