Python abs() Függvény: Példák abszolút értékre

⚡ Okos összefoglaló

Python Az abs() egy beépített függvény, amely egy szám abszolút értékét, azaz a nullától való távolságát adja vissza előjel nélkül. Egész számokat, lebegőpontos számokat és komplex számokat fogad el, komplex bemenetek esetén a nagyságot adja vissza.

  • 🔢 Abszolút érték: Az abs() eltávolítja a szám előjelét és visszaadja a nullától való távolságát, így az abs(-25) és az abs(25) is 25-öt ad vissza.
  • 🧮 Számtípusok: Az egyetlen argumentum lehet egész szám, lebegőpontos szám vagy komplex szám, a visszatérési típus pedig megegyezik a bemenettel.
  • 🔟 Komplex nagyságrend: Egy komplex szám, például a (3+10j) esetén az abs() függvény visszaadja a nagyságát, azaz a valós és képzetes rész négyzetgyökét.
  • 📋 listák: Az abs() egyszerre egy számot kezel, így egy olyan értelmezés, mint az [abs(n) for n in nums], minden elemre alkalmazza.
  • 🇧🇷 abs() vs. math.fabs(): A beépített abs() függvény megőrzi a bemenet típusát és támogatja a komplex számokat, míg a math.fabs() mindig lebegőpontos számot ad vissza, és szüksége van a matematikai modulra.
  • 🤖 AI segítség: Az olyan mesterséges intelligencia eszközök, mint a GitHub Copilot, az abs() és a NumPy np.abs() hívásokat generálják olyan feladatokhoz, mint az átlagos abszolút hiba egy rövid promptból.

Python abs() függvény

Python abs ()

Python abs () egy beépített függvény, amely a standard könyvtárban érhető el. Python. Visszaadja a megadott szám abszolút értékét. Egy szám abszolút értéke az az érték, amelyre az előjelét nem kell figyelni. A szám lehet egész szám, lebegőpontos szám vagy komplex szám. Ha a megadott szám komplex, akkor a nagyságát adja vissza.

Szintaxis

Az abs() függvény szintaxisa az alábbiakban látható:

abs(value)

Paraméterek (érték)

Az abs()-nak megadandó bemeneti érték, hogy megkapjuk az abszolút értéket. Ez lehet egész szám, lebegőpontos vagy komplex szám.

Visszatérési érték:

Az abs() függvény a megadott szám abszolút értékét adja vissza.

  • Ha a bemenet egy egész szám, akkor a visszatérési érték is egy egész szám lesz.
  • Ha a bemenet egy lebegőpontos szám, akkor a visszatérési érték is lebegőpontos lesz.
  • Ha a bemenet egy komplex szám, a visszatérési érték a bemenet nagysága lesz.

Példák

A következő példák az abs() függvény egész, lebegőpontos és komplex értékekre történő alkalmazását mutatják be.

Code 1. példa: Egész és lebegő szám

Egy egész szám és egy lebegőpontos szám abszolút értékének lekéréséhez nézd meg ezt a kódot:

# 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

2. példa: Komplex szám

Egy komplex szám abszolút értékének lekéréséhez használd ezt a kódot:

# 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

Hogyan találjuk meg egy lista abszolút értékét? Python

Az abs() függvény egyetlen számmal dolgozik, így egy egész lista átadása TypeError hibát okoz. Ha a lista minden elemére alkalmazni szeretnéd, használj egy listafeldolgozást, amely minden elemre meghívja az abs() függvényt:

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]

A feldolgozás megőrzi az eredeti sorrendet, és egy új, pozitív értékekből álló listát ad vissza. Ugyanezt az eredményt érheted el például a beépített map() függvénnyel. list(map(abs, numbers)), amely minden elemre az abs() függvényt alkalmazza explicit ciklus írása nélkül.

  • Használjon listaelemzést, ha az értékeket szűrni vagy átalakítani is szeretné.
  • Használd a map() függvényt egy rövid, olvasható hívásra, amely közvetlenül alkalmazza az abs() függvényt.
  • Nagy numerikus adathalmazok esetén egy np.abs() függvénnyel ellátott NumPy tömb gyorsabb, mint egy Python hurok.

Python abs() vs. math.fabs()

Python kétféleképpen lehet abszolút értéket lekérdezni: a beépített abs() függvényt és a math modul fabs() függvényét. Ezek hasonlónak tűnnek, de másképp viselkednek:

import math

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

output:

7
7.0

A két függvény közötti főbb különbségek a következők:

  • Visszatérési típus: Az abs() megőrzi a bemenet típusát és egész számot ad vissza, míg a math.fabs() mindig lebegőpontos számot ad vissza.
  • import: Az abs() függvény mindig elérhető, de a math.fabs() függvény megköveteli a következőt: import math.
  • Komplex számok: Az abs() függvény egy komplex szám nagyságát adja vissza, míg a math.fabs() TypeError hibát generál komplex bemenet esetén.

Gyakorlati alkalmazások a Python abs() függvény

Mivel az abs() függvény elveti az előjel-információkat, akkor hasznos, ha csak az érték mérete számít, az iránya nem. Gyakori példa erre a két leolvasás közötti különbség megkeresése:

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

output:

Temperature change: 17

Az abszolút érték mindennapi felhasználása a következő:

  • Távolságok és különbségek: két pont, hőmérséklet vagy időbélyeg közötti különbség mérése, függetlenül attól, hogy melyik érték nagyobb.
  • Hiba metrikák: Kiszámítjuk az előrejelzett érték és a tényleges érték közötti abszolút hibát.
  • Tűréshatár-ellenőrzések: annak tesztelése, hogy az eredmény elég közel van-e a célhoz, például abs(actual - expected) < 0.01.
  • Pénzügy: a nyereség vagy veszteség nagyságának közlése előjel nélkül.

Mint a kerek() függvényAz abs() egy beépített függvény, amelyet közvetlenül meghívhatsz modulok importálása nélkül.

GYIK

Nem. Az abs() új értéket ad vissza, és soha nem módosítja az argumentumát, mivel a számok a Python megváltoztathatatlanok. Az eredmény megtartásához rendeljük hozzá egy változóhoz, például pozitív = absz(szám). Az eredeti változó továbbra is megtartja az előjeles értékét.

Nem. Egy karakterlánc átadása TypeError: bad operand type for abs(): 'str' hibát okoz, mivel az abs() csak egész számokat, lebegőpontos vagy komplex számokat fogad el. Karakterlánc méréséhez ehelyett használd a len() függvényt, amely visszaadja, hogy hány karaktert tartalmaz.

Manuálisan is kiszámítható. Egy x érték esetén a max(x, -x) az abszolút értéket adja vissza, és az (x ** 2) ** 0.5 valós számokra is működik. A beépített abs() azonban áttekinthetőbb, gyorsabb, és komplex számokat is kezel.

Nem. A függőleges vonaljelölés |x| matematikai, nem Python szintaxis; Python A | szimbólum a bitenkénti VAGY operátor. Abszolút érték lekéréséhez meg kell hívni a beépített abs() függvényt, például abs(-8), amely 8-at ad vissza.

Az __abs__ a dunder metódus, amelyet az abs() a színfalak mögött hív meg. Amikor az abs(obj) függvényt írjuk, Python lefuttatja az obj.__abs__() függvényt. A __abs__ saját osztályban történő definiálása lehetővé teszi az abs() számára, hogy egyéni objektumokon, például vektorokon vagy pénztípusokon dolgozzon.

Ciklus helyett használd a vektorizált verziókat. A NumPy np.abs(array) függvénye egy új tömböt ad vissza, amelyben minden elem pozitív, egy panda Series pedig a Series.abs() függvényt teszi elérhetővé. Mindkettő az abszolút értéket alkalmazza egyszerre az összes elemre, ami gyorsabb nagy adathalmazok esetén.

Az abs() függvény a hiba- és távolságmetrikákat kezeli. Az átlagos abszolút hiba (MAE) és az L1 veszteség összegzi az előrejelzések és a célok közötti abszolút különbségeket, az abszolút értékek pedig a gradiens nagyságát mérik. Teljes tömbök esetén a NumPy np.abs() hatékonyan alkalmazza ugyanazt a műveletet minden elemen.

A GitHub Copilot abs() hívásokat, listaértelmezéseket, például [abs(n) for n in nums] és NumPy np.abs() sorokat javasol közvetlenül egy rövid megjegyzésből. Emellett képes egy átlagos abszolút hibafüggvényt is létrehozni, lehetővé téve a logika megerősítését a sablonírás helyett.

Foglald össze ezt a bejegyzést a következőképpen: