Python abs() Funktio: Esimerkkejä absoluuttisista arvoista

⚡ Älykäs yhteenveto

Python abs() on sisäänrakennettu funktio, joka palauttaa luvun itseisarvon eli sen etäisyyden nollasta ilman etumerkkiä. Se hyväksyy kokonaisluvut, liukulukut ja kompleksiluvut ja palauttaa kompleksilukujen suuruuden.

  • 🔢 Absoluuttinen arvo: abs() poistaa luvun etumerkin ja palauttaa sen etäisyyden nollasta, joten sekä abs(-25) että abs(25) antavat tulokseksi 25.
  • 🧮 Numerotyypit: Yksittäinen argumentti voi olla kokonaisluku, liukuluku tai kompleksiluku, ja paluutyyppi vastaa syötettä.
  • 🔟 Kompleksinen suuruus: Kompleksiluvun, kuten (3+10j), tapauksessa abs() palauttaa sen suuruuden, eli reaali- ja imaginaarisen osan neliöjuuren.
  • 📋 Listat: abs() käsittelee yhden luvun kerrallaan, joten ymmärrys, kuten [abs(n) for n in nums], soveltaa sitä kaikkiin elementteihin.
  • 🇧🇷 abs() vs. math.fabs(): Sisäänrakennettu abs() säilyttää syötetyypin ja tukee kompleksilukuja, kun taas math.fabs() palauttaa aina liukulukuja ja tarvitsee math-moduulin.
  • 🤖 AI-apu: Tekoälytyökalut, kuten GitHub Copilot, luovat abs()- ja NumPy np.abs()-kutsuja tehtäville, kuten keskimääräiselle absoluuttiselle virheelle, lyhyestä kehotteesta.

Python abs()-funktio

Python abs()

Python abs() on sisäänrakennettu funktio, joka on käytettävissä :n standardikirjastossa PythonSe palauttaa annetun luvun itseisarvoksi itseisarvon. Luvun itseisarvo on arvo ilman etumerkkiä. Luku voi olla kokonaisluku, liukuluku tai kompleksiluku. Jos annettu luku on kompleksiluku, se palauttaa sen suuruuden.

Syntaksi

abs()-funktion syntaksi on esitetty alla:

abs(value)

Parametrit (arvo)

Abs():lle annettava syöttöarvo absoluuttisen arvon saamiseksi. Se voi olla kokonaisluku, kelluva tai kompleksiluku.

Palautusarvo:

abs()-funktio palauttaa annetun luvun itseisarvon.

  • Jos syöte on kokonaisluku, myös palautusarvo on kokonaisluku.
  • Jos syöte on liukuluku, myös paluuarvo on liukuluku.
  • Jos syöte on kompleksiluku, palautusarvo on syötteen suuruus.

Esimerkit

Seuraavat esimerkit näyttävät abs()-funktion sovellettuna kokonaisluku-, liukuluku- ja kompleksilukuarvoihin.

Code Esimerkki 1: Kokonaisluku ja liukuluku

Saadaksesi kokonaisluvun ja liukulukun itseisarvon, tarkista tämä koodi:

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

lähtö:

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

Esimerkki 2: Kompleksiluku

Kompleksiluvun itseisarvon saamiseksi käytä tätä koodia:

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

lähtö:

The magnitude of the complex number is: 10.44030650891055

Kuinka löytää listan itseisarvo Python

abs()-funktio käsittelee yhtä lukua, joten koko listan välittäminen sille aiheuttaa TypeError-virheen. Jos haluat soveltaa sitä jokaiseen listan alkioon, käytä listan ymmärtämistä, joka kutsuu abs()-funktiota jokaiselle elementille:

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

lähtö:

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

Ymmärrys säilyttää alkuperäisen järjestyksen ja palauttaa uuden positiivisten arvojen listan. Voit saavuttaa saman tuloksen esimerkiksi sisäänrakennetulla map()-funktiolla. list(map(abs, numbers)), joka soveltaa abs()-funktiota jokaiseen elementtiin kirjoittamatta erillistä silmukkaa.

  • Käytä listan ymmärtämistä, kun haluat myös suodattaa tai muuntaa arvoja.
  • Käytä map()-funktiota lyhyeen ja helposti luettavaan kutsuun, joka soveltaa abs()-funktiota suoraan.
  • Suurille numeerisille tietojoukoille NumPy-taulukko np.abs()-funktiolla on nopeampi kuin Python silmukka.

Python abs() vs. math.fabs()

Python tarjoaa kaksi tapaa saada itseisarvo: sisäänrakennetun abs()-funktion ja matematiikkamoduulin fabs()-funktion. Ne näyttävät samankaltaisilta, mutta toimivat eri tavalla:

import math

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

lähtö:

7
7.0

Näiden kahden funktion keskeiset erot ovat:

  • Palautustyyppi: abs() säilyttää syötetyypin ja palauttaa kokonaisluvun kokonaisluvuna, kun taas math.fabs() palauttaa aina liukulukuarvon.
  • Tuonti: abs() on aina käytettävissä, mutta math.fabs() vaatii import math.
  • Kompleksiluvut: abs() palauttaa kompleksiluvun suuruuden, kun taas math.fabs() aiheuttaa TypeError-virheen kompleksiluvun syötteelle.

Käytännön sovellukset Python abs()-funktio

Koska abs() hylkää etumerkkitiedon, siitä on hyötyä aina, kun vain arvon koolla on merkitystä, eikä sen suunnalla. Yleinen esimerkki on kahden lukeman välisen eron etsiminen:

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

lähtö:

Temperature change: 17

Itseisarvon jokapäiväisiä käyttötarkoituksia ovat:

  • Etäisyydet ja erot: kahden pisteen, lämpötilan tai aikaleiman välisen eron mittaaminen riippumatta siitä, kumpi arvo on suurempi.
  • Virhemittarit: lasketaan ennustetun arvon ja todellisen arvon välinen absoluuttinen virhe.
  • Toleranssitarkastukset: testataan, onko tulos riittävän lähellä tavoitetta, kuten abs(actual - expected) < 0.01.
  • Rahoitus: voiton tai tappion suuruuden ilmoittaminen ilman etumerkkiä.

Kuten pyöreä()-funktio, abs() on sisäänrakennettu funktio, jota voi kutsua suoraan tuomatta mitään moduuleja.

UKK

Ei. abs() palauttaa uuden arvon eikä koskaan muuta argumenttiaan, koska luvut Python ovat muuttumattomia. Säilyttääksesi tuloksen, aseta se muuttujaan, esimerkiksi positiivinen = abs(luku). Alkuperäinen muuttuja säilyttää edelleen etumerkillisen arvonsa.

Ei. Merkkijonon välittäminen aiheuttaa TypeError: bad operand type for abs(): 'str' -virheen, koska abs() hyväksyy vain kokonaislukuja, liukulukuja tai kompleksilukuja. Merkkijonon mittaamiseen käytä sen sijaan len()-funktiota, joka palauttaa sen sisältämien merkkien määrän.

Voit laskea sen manuaalisesti. Arvolle x max(x, -x) palauttaa itseisarvon, ja (x ** 2) ** 0.5 toimii myös reaaliluvuille. Sisäänrakennettu abs() on kuitenkin selkeämpi, nopeampi ja käsittelee myös kompleksilukuja.

Ei. Pystysuora viivamerkintä |x| on matemaattinen, ei Python syntaksi; sisään Python |-symboli on bittikohtainen TAI-operaattori. Saadaksesi absoluuttisen arvon sinun on kutsuttava sisäänrakennettua abs()-funktiota, esimerkiksi abs(-8), joka palauttaa arvon 8.

__abs__ on dunder-metodi, jota abs() kutsuu kulissien takana. Kun kirjoitat abs(obj):n, Python suorittaa obj.__abs__()-funktion. __abs__:n määrittäminen omassa luokassasi antaa abs()-funktion käsitellä mukautettuja objekteja, kuten vektoria tai rahatyyppiä.

Käytä vektorisoituja versioita silmukan sijaan. NumPyn np.abs(array) palauttaa uuden taulukon, jossa jokainen elementti on positiivinen, ja pandas Series näyttää Series.abs(). Molemmat käyttävät itseisarvoa kaikkiin elementteihin kerralla, mikä on nopeampaa suurilla tietojoukoilla.

abs() tukee virhe- ja etäisyysmittareita. Keskimääräinen absoluuttinen virhe (MAE) ja L1-häviö laskevat yhteen ennusteiden ja tavoitteiden väliset absoluuttiset erot, ja absoluuttiset arvot mittaavat gradientin suuruuksia. Kokonaisille taulukoille NumPy np.abs() soveltaa samaa operaatiota tehokkaasti jokaiseen elementtiin.

GitHub Copilot ehdottaa abs()-kutsuja, listan ymmärtämistä, kuten [abs(n) for n in nums], ja NumPy np.abs()-rivien luomista suoraan lyhyestä kommentista. Se voi myös luoda keskimääräisen absoluuttisen virheen funktion, jolloin voit varmistaa logiikan sen sijaan, että kirjoittaisit vakiomuotoisia funktioita.

Tiivistä tämä viesti seuraavasti: