Атрибут epsneg
Атрибут epsneg класса finfo возвращает
значение отрицательного машинного эпсилон для
вещественного типа данных. Это минимальное
положительное число, которое при вычитании из 1
дает результат, отличный от 1. Отличается от
атрибута eps, который относится к сложению.
Атрибут доступен только для чтения.
Синтаксис
finfo.epsneg
Параметры
Атрибут epsneg не имеет параметров.
Пример 1
Получим epsneg для типа float64:
import numpy as np
info = np.finfo(np.float64)
print(info.epsneg)
Результат выполнения кода:
2.220446049250313e-16
Пример 2
Сравним eps и epsneg:
import numpy as np
info = np.finfo(np.float64)
print("eps:", info.eps)
print("epsneg:", info.epsneg)
print("eps == epsneg:", info.eps == info.epsneg)
Результат выполнения кода:
eps: 2.220446049250313e-16
epsneg: 2.220446049250313e-16
eps == epsneg: True
Пример 3
Проверим свойство epsneg на практике:
import numpy as np
info = np.finfo(np.float64)
epsneg = info.epsneg
print("1 - epsneg == 1:", 1 - epsneg == 1)
print("1 - epsneg/2 == 1:", 1 - epsneg/2 == 1)
Результат выполнения кода:
1 - epsneg == 1: False
1 - epsneg/2 == 1: True
Пример 4
Сравним epsneg для разных типов:
import numpy as np
types = [np.float16, np.float32, np.float64]
for t in types:
info = np.finfo(t)
print(f"{info.dtype}: epsneg={info.epsneg}")
Результат выполнения кода:
float16: epsneg=0.0009765625
float32: epsneg=1.1920928955078125e-07
float64: epsneg=2.220446049250313e-16