Python Функция abs(): примеры абсолютных значений

⚡ Умное резюме

Python Функция `abs()` — это встроенная функция, которая возвращает абсолютное значение числа, то есть его расстояние от нуля без знака. Она принимает целые числа, числа с плавающей запятой и комплексные числа, возвращая величину для комплексных входных данных.

  • 🔢 Абсолютное значение: Функция abs() убирает знак числа и возвращает его расстояние от нуля, поэтому abs(-25) и abs(25) оба дают 25.
  • 🧮 Типы чисел: В качестве единственного аргумента может выступать целое число, число с плавающей запятой или комплексное число, а тип возвращаемого значения соответствует входному.
  • 🔟 Комплексная величина: Для комплексного числа, такого как (3+10j), функция abs() возвращает его модуль, квадратный корень из квадратов действительной и мнимой частей.
  • 📋 Списки: Функция abs() обрабатывает только одно число за раз, поэтому генератор списков, например, [abs(n) for n in nums], применяет её ко всем элементам.
  • abs() против math.fabs(): Встроенная функция abs() сохраняет тип входных данных и поддерживает комплексные числа, в то время как math.fabs() всегда возвращает число с плавающей запятой и требует наличия модуля math.
  • 🤖 Помощь ИИ: Инструменты искусственного интеллекта, такие как GitHub Copilot, генерируют вызовы abs() и np.abs() из библиотеки NumPy для решения таких задач, как вычисление средней абсолютной ошибки, на основе короткого запроса.

Python абс() Функция

Python абс ()

Python абс () это встроенная функция, доступная в стандартной библиотеке PythonЭта функция возвращает абсолютное значение заданного числа. Абсолютное значение числа — это значение без учета его знака. Число может быть целым, числом с плавающей запятой или комплексным числом. Если заданное число комплексное, функция вернет его величину.

Синтаксис

Синтаксис функции abs() показан ниже:

abs(value)

Параметры (значение)

Входное значение, которое должно быть передано в функцию abs() для получения абсолютного значения. Это может быть целое число, число с плавающей запятой или комплексное число.

Возвращаемое значение:

Функция abs() возвращает абсолютное значение заданного числа.

  • Если на вход подается целое число, то и возвращаемое значение будет целым числом.
  • Если на вход подается число с плавающей запятой, то и возвращаемое значение будет числом с плавающей запятой.
  • Если входные данные представляют собой комплексное число, возвращаемое значение будет величиной входных данных.

Примеры

В следующих примерах показано применение функции abs() к целочисленным, числам с плавающей запятой и комплексным значениям.

Code Пример 1: Целое число и число с плавающей запятой

Чтобы получить абсолютное значение целого числа и числа с плавающей запятой, воспользуйтесь этим кодом:

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

Выход:

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

Пример 2: Комплексное число

Чтобы получить абсолютное значение комплексного числа, используйте следующий код:

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

Выход:

The magnitude of the complex number is: 10.44030650891055

Как найти абсолютное значение списка в Python

Функция `abs()` работает с одним числом, поэтому передача ей всего списка вызовет ошибку `TypeError`. Чтобы применить её ко всем элементам списка, используйте генератор списков, который вызывает `abs()` для каждого элемента:

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

Выход:

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

Генератор сохраняет исходный порядок и возвращает новый список положительных значений. Аналогичного результата можно добиться, например, с помощью встроенной функции map(). list(map(abs, numbers)), который применяет функцию abs() к каждому элементу без написания явного цикла.

  • Используйте генератор списков, если вы также хотите отфильтровать или преобразовать значения.
  • Используйте map() для короткого, легко читаемого вызова, который напрямую применяет abs().
  • Для больших числовых наборов данных массив NumPy с функцией np.abs() работает быстрее, чем Python петля.

Python abs() против math.fabs()

Python Предлагаются два способа получения абсолютного значения: встроенная функция abs() и функция fabs() из модуля math. Они выглядят похоже, но ведут себя по-разному:

import math

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

Выход:

7
7.0

Основные различия между этими двумя функциями заключаются в следующем:

  • Тип возврата: Метод abs() сохраняет тип входных данных и возвращает целое число для целого числа, в то время как метод math.fabs() всегда возвращает число с плавающей запятой.
  • Импортировать: Функция abs() всегда доступна, но для math.fabs() требуется import math.
  • Комплексные числа: Метод `abs()` возвращает величину комплексного числа, тогда как `math.fabs()` вызывает ошибку `TypeError` для ввода комплексных чисел.

Практические применения Python абс() Функция

Поскольку функция abs() не учитывает знак, она полезна в тех случаях, когда важна только величина значения, а не его направление. Распространенный пример — нахождение разницы между двумя показаниями:

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

Выход:

Temperature change: 17

В повседневной жизни абсолютное значение используется, в частности, в следующих случаях:

  • Расстояния и различия: Измерение разницы между двумя точками, температурами или временными метками, независимо от того, какое значение больше.
  • Показатели ошибок: Вычисление абсолютной погрешности между прогнозируемым и фактическим значением.
  • Проверки допусков: проверка того, достаточно ли близок результат к целевому значению, например: abs(actual - expected) < 0.01.
  • Финансовые вопросы: Указание размера прибыли или убытка без указания знака.

Как и функция раунд()Функция `abs()` — это встроенная функция, которую можно вызвать напрямую, не импортируя никаких модулей.

Часто задаваемые вопросы (FAQ)

Нет. Функция abs() возвращает новое значение и никогда не изменяет свой аргумент, потому что числа в Python являются неизменяемыми. Чтобы сохранить результат, присвойте его переменной, например, positive = abs(number). Исходная переменная при этом сохранит свое знаковое значение.

Нет. Передача строки вызывает ошибку TypeError: bad operand type for abs(): 'str', поскольку abs() принимает только целые числа, числа с плавающей запятой или комплексные числа. Вместо этого используйте функцию len(), которая возвращает количество символов в строке.

Вы можете вычислить это вручную. Для значения x функция max(x, -x) возвращает абсолютное значение, а (x ** 2) ** 0.5 также работает для действительных чисел. Однако встроенная функция abs() более понятна, быстрее и также обрабатывает комплексные числа.

Нет. Обозначение |x| с вертикальной чертой является математическим, а не математическим. Python синтаксис; в Python Символ | обозначает побитовое ИЛИ. Чтобы получить абсолютное значение, необходимо вызвать встроенную функцию abs(), например, abs(-8), которая возвращает 8.

__abs__ — это метод, который вызывается функцией abs() в фоновом режиме. Когда вы пишете abs(obj), Python Запускает obj.__abs__(). Определение __abs__ в вашем собственном классе позволяет abs() работать с пользовательскими объектами, такими как вектор или тип данных «деньги».

Вместо цикла используйте векторизованные версии. Метод np.abs(array) в NumPy возвращает новый массив, в каждом элементе которого задано положительное значение, а в pandas Series используется метод Series.abs(). Оба метода применяют абсолютное значение ко всем элементам одновременно, что быстрее для больших наборов данных.

Функция abs() лежит в основе метрик ошибки и расстояния. Средняя абсолютная ошибка (MAE) и функция потерь L1 суммируют абсолютные различия между предсказаниями и целевыми значениями, а абсолютные значения измеряют величину градиента. Для целых массивов функция NumPy np.abs() эффективно применяет одну и ту же операцию ко всем элементам.

GitHub Copilot предлагает вызовы abs(), списковые включения типа [abs(n) for n in nums] и строки NumPy np.abs() непосредственно из короткого комментария. Он также может генерировать функцию средней абсолютной ошибки, позволяя подтвердить логику вместо написания шаблонного кода.

Подведем итог этой публикации следующим образом: