Функция fabs
Функция fabs вычисляет абсолютное значение
для каждого элемента переданного массива.
Результат всегда возвращается в виде чисел с
плавающей точкой, даже если исходные данные
были целыми числами. Это основное отличие
от функции absolute, которая сохраняет
тип данных входного массива.
Функция принимает один обязательный параметр - массив или число. Она работает с массивами любой размерности и формы.
Синтаксис
np.fabs(x, out=None)
Параметр x может быть массивом или числом.
Необязательный параметр out задает массив
для сохранения результата.
Пример
Давайте вычислим модули для массива чисел с разными знаками:
import numpy as np
arr = np.array([-5, -2.5, 0, 3.5, 8])
res = np.fabs(arr)
print(res)
Результат выполнения кода:
[5. 2.5 0. 3.5 8. ]
Обратите внимание, что все значения стали положительными и имеют тип с плавающей точкой.
Пример
Применим функцию fabs к двумерному массиву:
import numpy as np
arr = np.array([[-1.2, 3.5, -7.8],
[4.1, -0.6, 9.3]])
res = np.fabs(arr)
print(res)
Результат выполнения кода:
[[1.2 3.5 7.8]
[4.1 0.6 9.3]]
Функция обрабатывает все элементы, независимо от их положения в массиве.
Пример
Сравним работу fabs и absolute на
целочисленном массиве:
import numpy as np
arr = np.array([-10, -5, 0, 5, 10])
fabs_res = np.fabs(arr)
abs_res = np.absolute(arr)
print("fabs:", fabs_res)
print("fabs dtype:", fabs_res.dtype)
print("absolute:", abs_res)
print("absolute dtype:", abs_res.dtype)
Результат выполнения кода:
"fabs: [5. 2.5 0. 3.5 8. ]"
"fabs dtype: float64"
"absolute: [ 5 2 0 3 8]"
"absolute dtype: int64"
Как видно, fabs преобразует целые числа
в числа с плавающей точкой, а absolute
сохраняет исходный тип данных.
Пример
Функция fabs также работает с
комплексными числами, возвращая их модуль:
import numpy as np
arr = np.array([1+2j, -3-4j, 5+6j])
res = np.fabs(arr)
print(res)
Результат выполнения кода:
[2.23606798 5. 7.81024968]
Для комплексных чисел возвращается евклидова норма (квадратный корень из суммы квадратов действительной и мнимой частей).