Python Función abs(): Ejemplos de valores absolutos

⚔ Resumen inteligente

Python `abs()` es una función integrada que devuelve el valor absoluto de un número, es decir, su distancia a cero sin signo. Acepta números enteros, números de coma flotante y números complejos, devolviendo la magnitud para entradas complejas.

  • šŸ”¢ Valor absoluto: abs() elimina el signo de un nĆŗmero y devuelve su distancia desde cero, por lo que abs(-25) y abs(25) dan como resultado 25.
  • 🧮 Tipos de nĆŗmeros: El Ćŗnico argumento puede ser un nĆŗmero entero, un nĆŗmero de coma flotante o un nĆŗmero complejo, y el tipo de retorno coincide con el de la entrada.
  • šŸ”Ÿ Magnitud compleja: Para un nĆŗmero complejo como (3+10j), abs() devuelve su magnitud, la raĆ­z cuadrada de las partes real e imaginaria elevadas al cuadrado.
  • šŸ“‹ Liza: abs() maneja un nĆŗmero a la vez, por lo que una comprensión como [abs(n) for n in nums] la aplica a todos los elementos.
  • šŸ‡§šŸ‡· abs() frente a math.fabs(): La función integrada abs() conserva el tipo de entrada y admite nĆŗmeros complejos, mientras que math.fabs() siempre devuelve un nĆŗmero de coma flotante y necesita el módulo math.
  • šŸ¤– Asistencia de IA: Las herramientas de IA, como GitHub Copilot, generan llamadas a abs() y NumPy np.abs() para tareas como el error absoluto medio a partir de una breve indicación.

Python función abs()

Python abs ()

Python abs () es una función integrada disponible con la biblioteca estÔndar de PythonDevuelve el valor absoluto del número dado. El valor absoluto de un número es aquel que no tiene signo. El número puede ser entero, de punto flotante o complejo. Si el número es complejo, devolverÔ su magnitud.

Sintaxis

La sintaxis de la función abs() se muestra a continuación:

abs(value)

ParƔmetros (valor)

El valor de entrada que se le debe dar a abs() para obtener el valor absoluto. Puede ser un nĆŗmero entero, un nĆŗmero flotante o un nĆŗmero complejo.

Valor de retorno:

La función abs() devuelve el valor absoluto del número dado.

  • Si la entrada es un nĆŗmero entero, el valor devuelto tambiĆ©n serĆ” un nĆŗmero entero.
  • Si la entrada es un nĆŗmero decimal, el valor devuelto tambiĆ©n serĆ” un nĆŗmero decimal.
  • Si la entrada es un nĆŗmero complejo, el valor de retorno serĆ” la magnitud de la entrada.

Ejemplos

Los siguientes ejemplos muestran la función abs() aplicada a valores enteros, de punto flotante y complejos.

Code Ejemplo 1: NĆŗmero entero y nĆŗmero de coma flotante

Para obtener el valor absoluto de un número entero y un número decimal, consulte este código:

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

Salida:

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

Ejemplo 2: NĆŗmero complejo

Para obtener el valor absoluto de un número complejo, utilice este código:

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

Salida:

The magnitude of the complex number is: 10.44030650891055

Cómo encontrar el valor absoluto de una lista en Python

La función `abs()` opera sobre un solo número, por lo que pasarle una lista completa genera un `TypeError`. Para aplicarla a cada elemento de una lista, utilice una comprensión de lista que llame a `abs()` en cada elemento:

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

Salida:

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

La comprensión mantiene el orden original y devuelve una nueva lista de valores positivos. Puedes lograr el mismo resultado con la función integrada map(), por ejemplo. list(map(abs, numbers)), que aplica abs() a cada elemento sin escribir un bucle explícito.

  • Utilice una comprensión de lista cuando tambiĆ©n desee filtrar o transformar los valores.
  • Utilice map() para una llamada corta y legible que aplica abs() directamente.
  • Para conjuntos de datos numĆ©ricos grandes, una matriz NumPy con np.abs() es mĆ”s rĆ”pida que una Python lazo.

Python abs() vs math.fabs()

Python Ofrece dos maneras de obtener un valor absoluto: la función integrada abs() y la función fabs() del módulo math. Son similares en apariencia, pero se comportan de manera diferente:

import math

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

Salida:

7
7.0

Las principales diferencias entre ambas funciones son:

  • Tipo de retorno: abs() conserva el tipo de entrada y devuelve un entero para un entero, mientras que math.fabs() siempre devuelve un nĆŗmero de coma flotante.
  • Importar: abs() siempre estĆ” disponible, pero math.fabs() requiere import math.
  • NĆŗmeros complejos: abs() devuelve la magnitud de un nĆŗmero complejo, mientras que math.fabs() genera un TypeError para entradas complejas.

Aplicaciones prÔcticas de la Python función abs()

Debido a que descarta la información del signo, abs() es útil cuando solo importa el tamaño de un valor y no su dirección. Un ejemplo común es encontrar la diferencia entre dos lecturas:

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

Salida:

Temperature change: 17

Entre los usos cotidianos del valor absoluto se incluyen:

  • Distancias y diferencias: medir la diferencia entre dos puntos, temperaturas o marcas de tiempo, independientemente de cuĆ”l de los dos valores sea mayor.
  • MĆ©tricas de error: calcular el error absoluto entre un valor previsto y un valor real.
  • Comprobaciones de tolerancia: probar si un resultado estĆ” lo suficientemente cerca de un objetivo, como en abs(actual - expected) < 0.01.
  • Finanzas: informar la magnitud de una ganancia o pĆ©rdida sin su signo.

Como en el función round(), abs() es una función integrada que puedes llamar directamente sin importar ningún módulo.

Preguntas Frecuentes

No. abs() devuelve un nuevo valor y nunca modifica su argumento, porque los nĆŗmeros en Python son inmutables. Para conservar el resultado, asĆ­gnelo a una variable, por ejemplo, positivo = abs(nĆŗmero). La variable original conserva su valor con signo.

No. Pasar una cadena genera un TypeError: bad operand type for abs(): 'str', ya que abs() solo acepta nĆŗmeros enteros, decimales o complejos. Para medir una cadena, utilice len(), que devuelve la cantidad de caracteres que contiene.

Puedes calcularlo manualmente. Para un valor x, max(x, -x) devuelve el valor absoluto, y (x ** 2) ** 0.5 también funciona para números reales. Sin embargo, la función integrada abs() es mÔs clara, rÔpida y también admite números complejos.

No. La notación de barra vertical |x| es matemÔtica, no Python sintaxis; en Python El símbolo | es el operador OR bit a bit. Para obtener un valor absoluto, debe llamar a la función integrada abs(), por ejemplo abs(-8), que devuelve 8.

__abs__ es el mƩtodo dunder que abs() llama en segundo plano. Cuando escribes abs(obj), Python Ejecuta obj.__abs__(). Definir __abs__ en tu propia clase permite que abs() funcione con objetos personalizados, como un vector o un tipo de moneda.

Utilice las versiones vectorizadas en lugar de un bucle. La función np.abs(array) de NumPy devuelve un nuevo array con todos los elementos convertidos a positivo, y la función Series de pandas expone Series.abs(). Ambas aplican el valor absoluto a todos los elementos a la vez, lo que resulta mÔs rÔpido para conjuntos de datos grandes.

La función `abs()` es fundamental para las métricas de error y distancia. El error absoluto medio (MAE) y la pérdida L1 suman las diferencias absolutas entre las predicciones y los valores objetivo, y los valores absolutos miden la magnitud del gradiente. Para matrices completas, la función `np.abs()` de NumPy aplica la misma operación a cada elemento de forma eficiente.

GitHub Copilot sugiere llamadas a `abs()`, comprensiones de listas como `[abs(n) for n in nums]` y líneas `np.abs()` de NumPy directamente a partir de un breve comentario. También puede generar una función de error absoluto medio, lo que permite confirmar la lógica en lugar de escribir código repetitivo.

Resumir este post con: