Python abs() Funktsioon: Absoluutväärtuse näited

⚡ Nutikas kokkuvõte

Python abs() on sisseehitatud funktsioon, mis tagastab arvu absoluutväärtuse, st selle kauguse nullist ilma märgita. See aktsepteerib täisarve, ujukomaarve ja kompleksarve, tagastades kompleksarvude puhul suuruse.

  • 🔢 Absoluutväärtus: abs() eemaldab arvu märgi ja tagastab selle kauguse nullist, seega abs(-25) ja abs(25) annavad mõlemad tulemuseks 25.
  • 🧮 Numbritüübid: Üksik argument võib olla täisarv, ujukomaarv või kompleksarv ning tagastustüüp vastab sisendile.
  • 🔟 Kompleksne suurusjärk: Kompleksarvu, näiteks (3+10j), puhul tagastab abs() selle suuruse, reaal- ja imaginaarosa ruutjuure.
  • ???? Nimekirjad: abs() käsitleb korraga ühte arvu, seega selline arusaadav käsk nagu [abs(n) for n in nums] rakendab seda iga elemendi puhul.
  • 🇧🇷 abs() vs math.fabs(): Sisseehitatud abs() säilitab sisendi tüübi ja toetab kompleksarve, samas kui math.fabs() tagastab alati ujukoma ja vajab matemaatikamoodulit.
  • 🤖 AI abi: Tehisintellekti tööriistad, näiteks GitHub Copilot, genereerivad lühikesest käsuviibast abs() ja NumPy np.abs() päringuid selliste ülesannete jaoks nagu keskmine absoluutne viga.

Python abs() Funktsioon

Python abs()

Python abs() on sisseehitatud funktsioon, mis on saadaval standardteegis Python. See tagastab antud arvu absoluutväärtuse. Arvu absoluutväärtus on väärtus ilma märki arvestamata. Arv võib olla täisarv, ujukomaarv või kompleksarv. Kui antud arv on kompleksarv, tagastatakse selle suurus.

Süntaks

abs() funktsiooni süntaks on näidatud allpool:

abs(value)

Parameetrid (väärtus)

Abs()-le absoluutväärtuse saamiseks antav sisendväärtus. See võib olla täisarv, ujuk või kompleksarv.

Tagastatav väärtus:

Funktsioon abs() tagastab antud arvu absoluutväärtuse.

  • Kui sisend on täisarv, on ka tagastusväärtus täisarv.
  • Kui sisend on ujukoma, on ka tagastusväärtus ujukoma.
  • Kui sisendiks on kompleksarv, on tagastusväärtuseks sisendi suurus.

Näited

Järgmised näited demonstreerivad funktsiooni abs() rakendamist täis-, uju- ja kompleksväärtustele.

Code Näide 1: Täisarv ja ujukarv

Täisarvu ja ujukomaarvu absoluutväärtuse saamiseks vaadake seda 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))

Väljund:

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

Näide 2: Kompleksarv

Kompleksarvu absoluutväärtuse saamiseks kasutage seda koodi:

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

Väljund:

The magnitude of the complex number is: 10.44030650891055

Kuidas leida loendi absoluutväärtust Python

Funktsioon abs() töötab ühe numbriga, seega terve loendi edastamine tekitab tüübivea (TypeError). Selle rakendamiseks loendi igale elemendile kasutage loendi mõistmist, mis kutsub abs() funktsiooni iga elemendi puhul:

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

Väljund:

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

Arusaamine säilitab algse järjekorra ja tagastab uue positiivsete väärtuste loendi. Sama tulemuse saab saavutada näiteks sisseehitatud map() funktsiooniga. list(map(abs, numbers)), mis rakendab abs() funktsiooni igale elemendile ilma selget tsüklit kirjutamata.

  • Kasutage loendi mõistmist, kui soovite ka väärtusi filtreerida või teisendada.
  • Kasuta map() funktsiooni lühikese ja loetava käsu jaoks, mis rakendab abs() funktsiooni otse.
  • Suurte numbriliste andmekogumite puhul on NumPy massiiv np.abs() funktsiooniga kiirem kui Python silmus

Python abs() vs math.fabs()

Python pakub absoluutväärtuse saamiseks kahte võimalust: sisseehitatud abs() ja matemaatikamooduli fabs() funktsiooni. Need näevad välja sarnased, aga käituvad erinevalt:

import math

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

Väljund:

7
7.0

Kahe funktsiooni peamised erinevused on järgmised:

  • Tagastusviis: abs() säilitab sisendi tüübi ja tagastab täisarvu korral täisarvu, samas kui math.fabs() tagastab alati ujukoma.
  • Import: abs() on alati saadaval, aga math.fabs() nõuab import math.
  • Kompleksarvud: abs() tagastab kompleksarvu suuruse, samas kui math.fabs() tekitab kompleksarvu sisendi korral tüübivea (TypeError).

Praktilised rakendused Python abs() Funktsioon

Kuna see jätab märgiinfo kõrvale, on abs() kasulik alati, kui oluline on ainult väärtuse suurus, mitte selle suund. Levinud näide on kahe näidu vahe leidmine:

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

Väljund:

Temperature change: 17

Absoluutväärtuse igapäevased kasutusalad hõlmavad järgmist:

  • Vahemaad ja erinevused: kahe punkti, temperatuuri või ajatempli vahelise vahe mõõtmine olenemata sellest, kumb väärtus on suurem.
  • Vea mõõdikud: ennustatud väärtuse ja tegeliku väärtuse vahelise absoluutvea arvutamine.
  • Tolerantsi kontrollid: testides, kas tulemus on sihtmärgile piisavalt lähedal, näiteks abs(actual - expected) < 0.01.
  • Rahandus: kasumi või kahjumi suuruse esitamine ilma märgita.

Nagu ümar() funktsioonabs() on sisseehitatud funktsioon, mida saab otse välja kutsuda ilma ühtegi moodulit importimata.

KKK

Ei. abs() tagastab uue väärtuse ja ei muuda kunagi oma argumenti, sest numbrid sees Python on muutumatud. Tulemuse säilitamiseks määrake see muutujale, näiteks positiivne = abs(number). Algne muutuja säilitab endiselt oma märgilise väärtuse.

Ei. Stringi edastamine tekitab vea TypeError: bad operand type for abs(): 'str', sest abs() aktsepteerib ainult täisarve, ujukomaarve või kompleksarve. Stringi mõõtmiseks kasuta hoopis len(), mis tagastab selles sisalduvate märkide arvu.

Seda saab käsitsi arvutada. Väärtuse x korral tagastab max(x, -x) absoluutväärtuse ja (x ** 2) ** 0.5 töötab ka reaalarvude puhul. Sisseehitatud abs() on aga selgem, kiirem ja käsitleb ka kompleksarve.

Ei. Vertikaalse kriipsu tähistus |x| on matemaatiline, mitte Python süntaks; sisse Python Sümbol | on bitipõhine VÕI operaator. Absoluutväärtuse saamiseks peate kutsuma sisseehitatud funktsiooni abs(), näiteks abs(-8), mis tagastab 8.

__abs__ on dunderi meetod, mida abs() kutsub taustal. Kui kirjutad abs(obj), Python käivitab funktsiooni obj.__abs__(). __abs__ defineerimine oma klassis võimaldab funktsioonil abs() töötada kohandatud objektidega, näiteks vektori või rahatüübiga.

Kasutage tsükli asemel vektoriseeritud versioone. NumPy np.abs(array) tagastab uue massiivi, mille kõik elemendid on positiivsed, ja panda Series puhul kuvatakse Series.abs(). Mõlemad rakendavad absoluutväärtust korraga kõigile elementidele, mis on suurte andmekogumite puhul kiirem.

abs() toetab vea ja kauguse mõõdikuid. Keskmine absoluutviga (MAE) ja L1 kaotus summeerivad ennustuste ja sihtmärkide absoluutsed erinevused ning absoluutväärtused mõõdavad gradiendi suurusjärke. Tervete massiivide puhul rakendab NumPy np.abs() sama operatsiooni tõhusalt iga elemendi ulatuses.

GitHub Copilot soovitab lühikesest kommentaarist otse abs() väljakutseid, loendi mõistmist nagu [abs(n) for n in nums] ja NumPy np.abs() ridu. See saab ka luua keskmise absoluutvea funktsiooni, mis võimaldab teil loogikat kinnitada malli kirjutamise asemel.

Võta see postitus kokku järgmiselt: