Numpy.random.uniform допустимые границы для двойного значения ⇐ Python

Программы на Python
Anonymous
Numpy.random.uniform допустимые границы для двойного значения

Сообщение Anonymous »

Код: Выделить всё

numpy.random.uniform
возвращает двойное значение между указанными нижней и верхней границами.
Я могу использовать np.finfo(np.double), чтобы получить минимальное и максимальное представимое число, но если я использую эти значения в numpy.random.uniform, я получаю сообщение об ошибке.

Код: Выделить всё

import numpy as np
info = np.finfo(np.double)
np.random.uniform(low=info.min, high=info.max)
OverflowError: диапазон превышает допустимые границы

Может ли кто-нибудь пролить свет на то, что происходит? здесь что-то не так? Каковы на самом деле поддерживаемые ограничения для low и high?
Я попытался получить границы для двойного значения и ввести их в rng, предназначенный для генерации двойных значений, я ожидалось, что они будут совместимы.
Уменьшение границ вдвое работает:

Код: Выделить всё

np.random.uniform(low=info.min/2, high=info.max/2)
Таким образом, это предполагает, что либо униформа на самом деле не может генерировать двойные значения, либо что границы, возвращаемые функцией finfo, не являются инклюзивными.

Подробнее здесь: https://stackoverflow.com/questions/790 ... for-double

Вернуться в «Python»