Python Funkcja abs(): Przykłady wartości bezwzględnych

⚡ Inteligentne podsumowanie

Python abs() to wbudowana funkcja, która zwraca wartość bezwzględną liczby, czyli jej odległość od zera bez znaku. Akceptuje liczby całkowite, zmiennoprzecinkowe i liczby zespolone, zwracając moduł dla danych zespolonych.

  • 🔢 Wartość bezwzględna: abs() usuwa znak liczby i zwraca jej odległość od zera, więc zarówno abs(-25), jak i abs(25) dają 25.
  • 🧮 Typy liczb: Pojedynczy argument może być liczbą całkowitą, zmiennoprzecinkową lub zespoloną, a typ zwracany pasuje do danych wejściowych.
  • 🔟 Wielkość złożona: W przypadku liczby zespolonej, takiej jak (3+10j), funkcja abs() zwraca jej moduł, czyli pierwiastek kwadratowy kwadratów części rzeczywistej i urojonej.
  • 📋 Listy: abs() przetwarza jedną liczbę na raz, więc wyrażenie takie jak [abs(n) for n in nums] stosuje je do każdego elementu.
  • ⚖️. abs() kontra math.fabs(): Wbudowana funkcja abs() zachowuje typ wejściowy i obsługuje liczby zespolone, natomiast math.fabs() zawsze zwraca wartość zmiennoprzecinkową i wymaga modułu matematycznego.
  • 🤖 Pomoc AI: Narzędzia AI, takie jak GitHub Copilot, generują wywołania abs() i NumPy np.abs() dla zadań, takich jak obliczanie średniego błędu bezwzględnego na podstawie krótkiego monitu.

Python Funkcja abs().

Python abs ()

Python abs () jest wbudowaną funkcją dostępną w standardowej bibliotece PythonZwraca wartość bezwzględną podanej liczby. Wartość bezwzględna liczby to wartość bez uwzględniania jej znaku. Liczba może być liczbą całkowitą, zmiennoprzecinkową lub zespoloną. Jeśli podana liczba jest zespolona, ​​funkcja zwróci jej moduł.

Składnia

Poniżej przedstawiono składnię funkcji abs():

abs(value)

Parametry (wartość)

Wartość wejściowa, która ma zostać podana do abs() w celu uzyskania wartości bezwzględnej. Może to być liczba całkowita, liczba zmiennoprzecinkowa lub liczba zespolona.

Wartość zwracana:

Funkcja abs() zwraca wartość bezwzględną podanej liczby.

  • Jeśli dane wejściowe są liczbami całkowitymi, wartość zwrócona również będzie liczbą całkowitą.
  • Jeśli dane wejściowe są typu float, wartość zwrócona również będzie typu float.
  • Jeśli dane wejściowe są liczbami zespolonymi, wartością zwracaną będzie wielkość danych wejściowych.

Przykłady

Poniższe przykłady pokazują funkcję abs() zastosowaną do wartości całkowitych, zmiennoprzecinkowych i zespolonych.

Code Przykład 1: Liczba całkowita i liczba zmiennoprzecinkowa

Aby uzyskać wartość bezwzględną liczby całkowitej i zmiennoprzecinkowej, sprawdź ten kod:

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

Wyjście:

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

Przykład 2: Liczba zespolona

Aby uzyskać wartość bezwzględną liczby zespolonej, użyj tego kodu:

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

Wyjście:

The magnitude of the complex number is: 10.44030650891055

Jak znaleźć wartość bezwzględną listy w Python

Funkcja abs() działa na pojedynczej liczbie, więc przekazanie jej całej listy powoduje błąd TypeError. Aby zastosować ją do każdego elementu listy, należy użyć wyrażenia listowego, które wywołuje funkcję abs() dla każdego elementu:

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

Wyjście:

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

Kompresja zachowuje oryginalną kolejność i zwraca nową listę wartości dodatnich. Ten sam rezultat można osiągnąć za pomocą wbudowanej funkcji map(), na przykład. list(map(abs, numbers)), która stosuje abs() do każdego elementu bez pisania jawnej pętli.

  • Użyj wyrażenia listowego, jeśli chcesz również filtrować lub przekształcać wartości.
  • Użyj map() do krótkiego, czytelnego wywołania, które bezpośrednio stosuje abs().
  • W przypadku dużych zestawów danych liczbowych tablica NumPy z np.abs() jest szybsza niż Python pętla.

Python abs() kontra math.fabs()

Python Oferuje dwa sposoby uzyskania wartości bezwzględnej: wbudowaną funkcję abs() i funkcję fabs() modułu matematycznego. Wyglądają podobnie, ale zachowują się inaczej:

import math

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

Wyjście:

7
7.0

Główne różnice pomiędzy tymi dwiema funkcjami są następujące:

  • Typ zwracany: abs() zachowuje typ wejściowy i zwraca liczbę całkowitą dla liczby całkowitej, podczas gdy math.fabs() zawsze zwraca liczbę zmiennoprzecinkową.
  • Import: abs() jest zawsze dostępny, ale math.fabs() wymaga import math.
  • Liczby zespolone: abs() zwraca moduł liczby zespolonej, natomiast math.fabs() zgłasza wyjątek TypeError w przypadku danych zespolonych.

Praktyczne zastosowania Python Funkcja abs().

Ponieważ funkcja abs() pomija informacje o znaku, jest przydatna, gdy liczy się tylko rozmiar wartości, a nie jej kierunek. Typowym przykładem jest znalezienie różnicy między dwoma odczytami:

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

Wyjście:

Temperature change: 17

Do codziennego zastosowania wartości bezwzględnej zalicza się:

  • Odległości i różnice: mierzenie odstępu między dwoma punktami, temperaturami lub znacznikami czasu, bez względu na to, która wartość jest większa.
  • Metryki błędów: obliczanie błędu bezwzględnego pomiędzy wartością przewidywaną i wartością rzeczywistą.
  • Sprawdzanie tolerancji: testowanie, czy wynik jest wystarczająco bliski celowi, jak w abs(actual - expected) < 0.01.
  • Finanse: raportowanie wielkości zysku lub straty bez znaku.

Podobnie jak funkcja round()abs() to wbudowana funkcja, którą można wywołać bezpośrednio, bez konieczności importowania żadnego modułu.

FAQ

Nie. Funkcja abs() zwraca nową wartość i nigdy nie modyfikuje argumentu, ponieważ liczby w Python Są niezmienne. Aby zachować wynik, przypisz go do zmiennej, na przykład positive = abs(liczba). Oryginalna zmienna nadal zachowuje swoją wartość ze znakiem.

Nie. Przekazanie ciągu znaków powoduje błąd TypeError: bad operand type for abs(): 'str', ponieważ abs() akceptuje tylko liczby całkowite, zmiennoprzecinkowe i zespolone. Aby zmierzyć ciąg znaków, użyj funkcji len(), która zwraca liczbę znaków w nim zawartych.

Można to obliczyć ręcznie. Dla wartości x funkcja max(x, -x) zwraca wartość bezwzględną, a (x ** 2) ** 0.5 działa również dla liczb rzeczywistych. Jednak wbudowana funkcja abs() jest bardziej przejrzysta, szybsza i obsługuje również liczby zespolone.

Nie. Notacja |x| w postaci pionowej kreski jest matematyczna, a nie Python składnia; w Python Symbol | to operator bitowy OR. Aby uzyskać wartość bezwzględną, należy wywołać wbudowaną funkcję abs(), na przykład abs(-8), która zwraca 8.

__abs__ to metoda dunder, którą abs() wywołuje w tle. Kiedy piszesz abs(obj), Python Uruchamia obj.__abs__(). Zdefiniowanie __abs__ we własnej klasie umożliwia funkcji abs() działanie na obiektach niestandardowych, takich jak wektor lub typ waluty.

Użyj wersji wektoryzowanej zamiast pętli. Funkcja np.abs(array) w NumPy zwraca nową tablicę, w której każdy element jest dodatni, a seria w Pandas udostępnia funkcję Series.abs(). Obie funkcje stosują wartość bezwzględną do wszystkich elementów jednocześnie, co jest szybsze w przypadku dużych zbiorów danych.

Funkcja abs() stanowi podstawę metryk błędów i odległości. Średni błąd bezwzględny (MAE) i strata L1 sumują bezwzględne różnice między prognozami a wartościami docelowymi, a wartości bezwzględne mierzą wielkości gradientu. W przypadku całych tablic funkcja np.abs() z biblioteki NumPy efektywnie stosuje tę samą operację do każdego elementu.

GitHub Copilot sugeruje wywołania abs(), wyrażenia listowe, takie jak [abs(n) for n in nums], oraz wiersze np.abs() z NumPy bezpośrednio z krótkiego komentarza. Może również tworzyć szkielet funkcji średniego błędu bezwzględnego, pozwalając na potwierdzenie logiki zamiast pisania szablonu.

Podsumuj ten post następująco: