машина python numpy epsilon

Я пытаюсь понять, что такое машинный эпсилон. Согласно Википедии, ее можно рассчитать следующим образом:

def machineEpsilon(func=float): machine_epsilon = func(1) while func(1)+func(machine_epsilon) != func(1): machine_epsilon_last = machine_epsilon machine_epsilon = func(machine_epsilon) / func(2) return machine_epsilon_last 

Однако он подходит только для чисел с двойной точностью. Я заинтересован в его модификации для поддержки чисел с одной точностью. Я читал, что можно использовать numpy, особенно класс numpy.float32 . Может ли кто-нибудь помочь с изменением функции?

3 Solutions collect form web for “машина python numpy epsilon”

Более простой способ получить epsilon машины для данного типа float – использовать np.finfo() :

 print(np.finfo(float).eps) # 2.22044604925e-16 print(np.finfo(np.float32).eps) # 1.19209e-07 

Еще один простой способ получить эпсилон:

 In [1]: 7./3 - 4./3 -1 Out[1]: 2.220446049250313e-16 

Это уже будет работать, как указал Давид!

 >>> def machineEpsilon(func=float): ... machine_epsilon = func(1) ... while func(1)+func(machine_epsilon) != func(1): ... machine_epsilon_last = machine_epsilon ... machine_epsilon = func(machine_epsilon) / func(2) ... return machine_epsilon_last ... >>> machineEpsilon(float) 2.220446049250313e-16 >>> import numpy >>> machineEpsilon(numpy.float64) 2.2204460492503131e-16 >>> machineEpsilon(numpy.float32) 1.1920929e-07 
  • PermissionError: Permission denied: 'C: \\ Program Files \\ Python35 \\ Lib \\ site-packages \\ six.py'
  • Обобщить операцию разрезания в массиве NumPy
  • Анимация, основанная только на обновлении цветов в сюжете
  • Различают ли числовые языки программирования «наибольшее конечное число» и «бесконечность»?
  • Обратный сортировка и argsort в python
  • найти длину самой длинной последовательной серии чисел
  • Плавная реализация MATLAB (n-точечная скользящая средняя) в NumPy / Python
  • Преобразование timedelta64 в секундах в Python Pandas DataFrame
  • Python / Scipy: найдите «ограниченный» min / max матрицы
  • Numpy накапливает один массив в другом, используя индексный массив
  • Векторизация алгоритма обработки координат в реальном времени Kinect для скорости
  • Python - лучший язык программирования в мире.