Функция fix
Функция fix из модуля numpy возвращает массив,
в котором каждый элемент округлён к нулю. Это означает,
что для положительных чисел дробная часть просто отбрасывается,
а для отрицательных - округление происходит в сторону увеличения
(например, -3.7 становится -3.0). Функция принимает массив
или скалярное значение и возвращает результат того же типа.
Синтаксис
np.fix(x, [out=None])
Параметр x - это входной массив или скаляр.
Необязательный параметр out позволяет указать
массив для сохранения результата.
Пример
Применим функцию к одномерному массиву с положительными и отрицательными числами:
import numpy as np
arr = np.array([3.7, -2.1, 5.0, -4.9, 1.2])
res = np.fix(arr)
print(res)
Результат выполнения кода:
[ 3. -2. 5. -4. 1.]
Как видно, положительные числа округлились вниз (к нулю), а отрицательные - вверх (также к нулю).
Пример
Функция fix также работает с многомерными массивами:
import numpy as np
arr = np.array([[1.9, -2.8], [3.4, -4.1]])
res = np.fix(arr)
print(res)
Результат выполнения кода:
[[ 1. -2.]
[ 3. -4.]]
Обратите внимание, что форма массива сохраняется, а все элементы заменяются на целые значения с плавающей точкой.
Пример
Сравним fix с другими функциями округления - floor (вниз) и ceil (вверх):
import numpy as np
arr = np.array([-3.2, 2.7, -0.5, 4.1])
res_fix = np.fix(arr)
res_floor = np.floor(arr)
res_ceil = np.ceil(arr)
print("fix: ", res_fix)
print("floor: ", res_floor)
print("ceil: ", res_ceil)
Результат выполнения кода:
fix: [-3. 2. -0. 4.]
floor: [-4. 2. -1. 4.]
ceil: [-3. 3. -0. 5.]
Видно, что fix всегда округляет к нулю,
в то время как floor и ceil округляют
в сторону минус и плюс бесконечности соответственно.