Python Funzione abs(): esempi di valori assoluti

โšก Riepilogo intelligente

Python abs() รจ una funzione integrata che restituisce il valore assoluto di un numero, ovvero la sua distanza da zero, senza segno. Accetta numeri interi, numeri in virgola mobile e numeri complessi, restituendo il valore assoluto per gli input complessi.

  • ๐Ÿ”ข Valore assoluto: La funzione abs() rimuove il segno di un numero e restituisce la sua distanza da zero, quindi sia abs(-25) che abs(25) restituiscono 25.
  • ๐Ÿงฎ Tipi di numeri: L'unico argomento puรฒ essere un numero intero, un numero in virgola mobile o un numero complesso, e il tipo di ritorno corrisponde all'input.
  • ๐Ÿ”Ÿ Magnitudine complessa: Per un numero complesso come (3+10j), la funzione abs() restituisce il suo modulo, ovvero la radice quadrata del quadrato della parte reale e della parte immaginaria.
  • ๐Ÿ“‹ liste: La funzione abs() gestisce un numero alla volta, quindi una list comprehension come [abs(n) for n in nums] la applica a tutti gli elementi.
  • ๏ธ abs() vs math.fabs(): La funzione integrata abs() mantiene il tipo di input e supporta i numeri complessi, mentre math.fabs() restituisce sempre un valore float e richiede il modulo math.
  • ๐Ÿค– Assistenza AI: Strumenti di intelligenza artificiale come GitHub Copilot generano chiamate abs() e NumPy np.abs() per attivitร  come il calcolo dell'errore assoluto medio a partire da un breve prompt.

Python abs() Funzione

Python abs ()

Python abs () รจ una funzione integrata disponibile con la libreria standard di PythonRestituisce il valore assoluto del numero dato. Il valore assoluto di un numero รจ il suo valore senza considerare il segno. Il numero puรฒ essere un numero intero, un numero in virgola mobile o un numero complesso. Se il numero dato รจ complesso, ne restituirร  il modulo.

Sintassi

La sintassi della funzione abs() รจ mostrata di seguito:

abs(value)

Parametri (valore)

Il valore di input da dare ad abs() per ottenere il valore assoluto. Puรฒ essere un numero intero, un float o un numero complesso.

Valore di ritorno:

La funzione abs() restituisce il valore assoluto del numero dato.

  • Se l'input รจ un numero intero, anche il valore restituito sarร  un numero intero.
  • Se l'input รจ un numero in virgola mobile, anche il valore restituito sarร  un numero in virgola mobile.
  • Se l'input รจ un numero complesso, il valore restituito sarร  la grandezza dell'input.

Esempi

I seguenti esempi mostrano la funzione abs() applicata a valori interi, a virgola mobile e complessi.

Code Esempio 1: numeri interi e numeri in virgola mobile

Per ottenere il valore assoluto di un numero intero e di un numero decimale, consulta questo codice:

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

Produzione:

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

Esempio 2: Numero complesso

Per ottenere il valore assoluto di un numero complesso, usa questo codice:

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

Produzione:

The magnitude of the complex number is: 10.44030650891055

Come trovare il valore assoluto di una lista in Python

La funzione abs() opera su un singolo numero, quindi passarle un'intera lista genera un TypeError. Per applicarla a ogni elemento di una lista, utilizzare una list comprehension che chiami abs() su ciascun elemento:

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

Produzione:

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

La list comprehension mantiene l'ordine originale e restituisce un nuovo elenco di valori positivi. รˆ possibile ottenere lo stesso risultato con la funzione map() integrata, ad esempio list(map(abs, numbers)), che applica la funzione abs() a ciascun elemento senza scrivere un ciclo esplicito.

  • Utilizza una list comprehension quando desideri anche filtrare o trasformare i valori.
  • Utilizza map() per una chiamata breve e leggibile che applica direttamente abs().
  • Per grandi insiemi di dati numerici, un array NumPy con np.abs() รจ piรน veloce di un Python ciclo continuo.

Python abs() vs math.fabs()

Python offre due modi per ottenere un valore assoluto: la funzione integrata abs() e la funzione fabs() del modulo math. Sembrano simili, ma si comportano in modo diverso:

import math

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

Produzione:

7
7.0

Le principali differenze tra le due funzioni sono:

  • Tipo di ritorno: abs() preserva il tipo di input e restituisce un intero per un intero, mentre math.fabs() restituisce sempre un numero in virgola mobile.
  • Importare: abs() รจ sempre disponibile, ma math.fabs() richiede import math.
  • Numeri complessi: abs() restituisce il valore assoluto di un numero complesso, mentre math.fabs() genera un TypeError per input complessi.

Applicazioni pratiche dell' Python abs() Funzione

Poichรฉ ignora le informazioni sul segno, la funzione abs() รจ utile quando conta solo la grandezza di un valore e non la sua direzione. Un esempio comune รจ il calcolo della differenza tra due letture:

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

Produzione:

Temperature change: 17

Gli usi quotidiani del valore assoluto includono:

  • Distanze e differenze: Misurare la differenza tra due punti, temperature o timestamp, indipendentemente da quale valore sia maggiore.
  • Metriche di errore: Calcolo dell'errore assoluto tra un valore previsto e un valore effettivo.
  • Controlli di tolleranza: testare se un risultato รจ abbastanza vicino a un obiettivo, come in abs(actual - expected) < 0.01.
  • Finanza: riportare l'entitร  di un guadagno o di una perdita senza il suo segno.

Come funzione round()abs() รจ una funzione integrata che puoi chiamare direttamente senza importare alcun modulo.

DOMANDE FREQUENTI

No. abs() restituisce un nuovo valore e non modifica mai il suo argomento, perchรฉ i numeri in Python sono immutabili. Per conservare il risultato, assegnalo a una variabile, ad esempio positive = abs(number). La variabile originale conserva comunque il suo valore con segno.

No. Passare una stringa genera un errore TypeError: bad operand type for abs(): 'str', perchรฉ abs() accetta solo numeri interi, numeri in virgola mobile o numeri complessi. Per misurare una stringa, invece, usa len(), che restituisce il numero di caratteri che contiene.

รˆ possibile calcolarlo manualmente. Per un valore x, max(x, -x) restituisce il valore assoluto, e (x ** 2) ** 0.5 funziona anche per i numeri reali. Tuttavia, la funzione integrata abs() รจ piรน chiara, piรน veloce e gestisce anche i numeri complessi.

No. La notazione con barra verticale |x| รจ matematica, non Python sintassi; in Python Il simbolo | rappresenta l'operatore OR bit a bit. Per ottenere un valore assoluto รจ necessario chiamare la funzione integrata abs(), ad esempio abs(-8), che restituisce 8.

__abs__ รจ il metodo dunder che abs() chiama dietro le quinte. Quando scrivi abs(obj), Python esegue obj.__abs__(). Definire __abs__ nella propria classe consente ad abs() di funzionare su oggetti personalizzati, come un vettore o un tipo monetario.

Utilizza le versioni vettorializzate invece di un ciclo. La funzione np.abs(array) di NumPy restituisce un nuovo array con ogni elemento reso positivo, mentre la Series di pandas espone Series.abs(). Entrambe applicano il valore assoluto a tutti gli elementi contemporaneamente, il che รจ piรน veloce per set di dati di grandi dimensioni.

La funzione abs() รจ alla base delle metriche di errore e distanza. L'errore assoluto medio (MAE) e la perdita L1 sommano le differenze assolute tra previsioni e valori target, mentre i valori assoluti misurano l'entitร  del gradiente. Per interi array, la funzione np.abs() di NumPy applica la stessa operazione a ogni elemento in modo efficiente.

GitHub Copilot suggerisce chiamate abs(), list comprehension come [abs(n) for n in nums] e righe np.abs() di NumPy direttamente da un breve commento. Puรฒ anche generare una funzione per il calcolo dell'errore assoluto medio, permettendoti di confermare la logica invece di scrivere codice ripetitivo.

Riassumi questo post con: