1. Pythoni abs() funktsiooni põhikasutus
Mis on abs() funktsioon Pythonis?
Pythoni abs()
funktsioon on sisseehitatud funktsioon, mis tagastab antud arvu absoluutväärtuse. Absoluutväärtus tähendab arvu suurust, jättes tähelepanuta märgi (pluss või miinus). abs()
on väga lihtne kasutada ning töötab täisarvude, ujukomaarvude ja isegi kompleksarvude puhul.
Põhiline kasutamine
abs()
funktsiooni kasutamine on intuitiivne – anna lihtsalt arv argumendiks ning saad selle absoluutväärtuse. Näited:
# Täisarvu näide
x = -10
y = abs(x)
print(y) # Väljund: 10
# Ujukomaarvu näide
a = -3.14
b = abs(a)
print(b) # Väljund: 3.14
# Kompleksarvu näide
z = 3 + 4j
w = abs(z)
print(w) # Väljund: 5.0
Nagu näha, võimaldab abs()
funktsioon hõlpsalt arvude absoluutväärtusi arvutada. Eriti kasulik on see kompleksarvude puhul, kus väärtus leitakse Pythagorase teoreemi põhjal, mis on laialt kasutatav matemaatilistes arvutustes.

2. Erinevus math.fabs() funktsiooniga
Mis on math.fabs()?
Pythoni standardteegi math
moodulis on olemas fabs()
funktsioon, mis sarnaselt abs()
funktsioonile tagastab arvu absoluutväärtuse. See võtab argumendiks reaalarvu (täisarv või ujukomaarv) ning tagastab tulemuse alati ujukomaarvuna.
Erinevused abs() ja math.fabs() vahel
Oluline erinevus abs()
ja math.fabs()
vahel seisneb tagastatavas andmetüübis. abs()
tagastab täisarvu täisarvuna ja ujukomaarvu ujukomaarvuna, samas kui math.fabs()
tagastab alati ujukomaarvu.
import math
# abs() ja math.fabs() võrdlus
x = -10
print(abs(x)) # Väljund: 10 (täisarv)
print(math.fabs(x)) # Väljund: 10.0 (ujukomaarv)
y = -3.14
print(abs(y)) # Väljund: 3.14 (ujukomaarv)
print(math.fabs(y)) # Väljund: 3.14 (ujukomaarv)
math.fabs()
on sobiv juhul, kui on vaja tagada, et tulemused oleksid alati ujukomaarvud – näiteks arvutustes, kus andmetüübi järjepidevus on oluline.
3. Massiivide ja loendite absoluutväärtuse arvutamine
abs() funktsiooni piirangud ja NumPy kasutamine
abs()
ja math.fabs()
funktsioonid töötavad üksikute arvudega. Kui on vaja arvutada absoluutväärtus tervele loendile või massiivile, ei saa neid otse kasutada. Selle asemel on soovitatav kasutada NumPy teeki, mis võimaldab elementide kaupa arvutamist.
NumPy abs() funktsioon
NumPy teegis on olemas np.abs()
funktsioon, mis arvutab loendi või massiivi kõikide elementide absoluutväärtused.
import numpy as np
# Massiivi absoluutväärtused
arr = np.array([-1, -2, -3, 4])
abs_arr = np.abs(arr)
print(abs_arr) # Väljund: [1 2 3 4]
NumPy toetab ka kompleksarvudega massiive ning suudab arvutada nende absoluutväärtused.
# Kompleksarvude massiiv
d = np.array([3 + 4j, 1 - 1j])
abs_d = np.abs(d)
print(abs_d) # Väljund: [5. 1.41421356]
pandas teegiga arvutamine
Kui töötled andmeraame, saab kasutada DataFrame.abs()
meetodit konkreetsete veergude absoluutväärtuste leidmiseks.
import pandas as pd
# DataFrame absoluutväärtused
df = pd.DataFrame({'A': [-1, -2, -3], 'B': [4, -5, 6]})
print(df.abs())
# Väljund:
# A B
# 0 1 4
# 1 2 5
# 2 3 6
NumPy ja pandas muudavad suurte andmehulkade töötlemise palju efektiivsemaks.

4. Praktilised näited
Näide 1: Veaandmete absoluutväärtus
Andmeanalüüsis kasutatakse tihti absoluutväärtust vigade suuruse hindamiseks.
# Vigade absoluutväärtus
errors = [1.5, -2.3, 0.9, -1.2, 0.4]
abs_errors = [abs(err) for err in errors]
# Keskmine absoluutne viga
average_abs_error = sum(abs_errors) / len(abs_errors)
print(average_abs_error) # Väljund: 1.26
Näide 2: Kompleksarvude kasutamine
Kompleksarvude absoluutväärtust kasutatakse laialdaselt füüsikas ja inseneriteadustes.
# Kompleksarvu absoluutväärtus
z = 3 + 4j
z_abs = abs(z)
print(z_abs) # Väljund: 5.0
Näide 3: Andmeanalüüs
Absoluutväärtust saab kasutada andmete puhastamiseks ja anomaaliate leidmiseks.
import pandas as pd
data = {'Mõõdetud': [-5, 3, -2, 8, -7], 'Prognoos': [5, 3, 2, 8, 7]}
df = pd.DataFrame(data)
df['Vahe_abs'] = (df['Mõõdetud'] - df['Prognoos']).abs()
print(df)
# Väljund:
# Mõõdetud Prognoos Vahe_abs
# 0 -5 5 10
# 1 3 3 0
# 2 -2 2 4
# 3 8 8 0
# 4 -7 7 14

5. Täiendavad märkused ja head tavad
Vea käsitlemine absoluutväärtuse arvutamisel
abs()
töötab arvudega, kuid kui sellele anda näiteks loend või sõnastik, tekib viga. Seetõttu on soovitatav lisada erindite käsitlemine.
# Turvaline absoluutväärtuse funktsioon
def safe_abs(value):
try:
return abs(value)
except TypeError:
print(f"TypeError: {value} ei ole toetatud tüüp.")
return None
print(safe_abs([-1, -2])) # Väljund: TypeError: [-1, -2] ei ole toetatud tüüp.
Jõudluse kaalutlused
Kui töötled väga suuri andmehulkasid, siis on NumPy ja pandas parim valik jõudluse säilitamiseks.
Millal kasutada abs(), math.fabs() või numpy.abs()
- Väiksemate arvutuste puhul kasuta
abs()
. - Kui vajad alati ujukomaarvu, kasuta
math.fabs()
. - Suurte massiivide või andmeraamide puhul kasuta
numpy.abs()
võipandas.DataFrame.abs()
.
6. Kokkuvõte
Selles artiklis vaatasime, kuidas kasutada Pythoni abs()
funktsiooni, ning võrdlesime seda math.fabs()
ja numpy.abs()
funktsioonidega. Absoluutväärtuste arvutamine on andmetöötluses, analüüsis ja vigade hindamisel väga oluline. Õige funktsiooni valimine aitab kirjutada tõhusamat ja töökindlamat koodi.