Атрибут min
Атрибут min класса finfo возвращает минимальное представимое конечное число для типа данных с плавающей точкой. В отличие от атрибута tiny, который возвращает наименьшее положительное нормализованное число, min возвращает наименьшее конечное число, которое может быть представлено в данном типе (с учетом знака). Для отрицательных чисел это значение является наибольшим по модулю отрицательным числом, которое еще можно представить без переполнения. Атрибут доступен только для чтения и возвращает число с плавающей точкой.
Синтаксис
finfo.min
Атрибут доступен только для чтения и возвращает число float.
Пример для float32
Получим минимальное значение для типа float32:
import numpy as np
f = np.finfo(np.float32)
print("Тип данных:", f.dtype)
print("Минимальное значение (min):", f.min)
print("Наименьшее положительное (tiny):", f.tiny)
Результат выполнения кода:
Тип данных: float32
Минимальное значение (min): -3.4028235e+38
Наименьшее положительное (tiny): 1.17549435e-38
Минимальное значение для float32 равно примерно -3.4e+38, в то время как наименьшее положительное нормализованное число - примерно 1.18e-38.
Пример для float64
Получим минимальное значение для типа float64:
import numpy as np
f = np.finfo(np.float64)
print("Тип данных:", f.dtype)
print("Минимальное значение (min):", f.min)
print("Наименьшее положительное (tiny):", f.tiny)
Результат выполнения кода:
Тип данных: float64
Минимальное значение (min): -1.7976931348623157e+308
Наименьшее положительное (tiny): 2.2250738585072014e-308
Диапазон float64 значительно шире, чем у float32.
Пример проверки выхода за границы
Проверим, что будет при попытке создать число меньше min:
import numpy as np
f = np.finfo(np.float32)
smallest = f.min
print("min float32:", smallest)
print("Попытка создать число меньше min:")
# Создаем массив с числом меньше минимального
try:
arr = np.array([smallest * 10], dtype=np.float32)
print("Результат:", arr[0])
except Exception as e:
print("Ошибка:", e)
Результат выполнения кода:
min float32: -3.4028235e+38
Попытка создать число меньше min:
Результат: -inf
При попытке записать число меньше min происходит переполнение, и результатом становится отрицательная бесконечность.
Пример сравнения с max
Сравним минимальное и максимальное значения для разных типов:
import numpy as np
for dtype in [np.float32, np.float64]:
f = np.finfo(dtype)
print(f"Тип: {dtype}")
print(f" min: {f.min}")
print(f" max: {f.max}")
print()
Результат выполнения кода:
Тип: float32
min: -3.4028234663852886e+38
max: 3.4028234663852886e+38
Тип: float64
min: -1.7976931348623157e+308
max: 1.7976931348623157e+308
Минимальное и максимальное значения симметричны для обоих типов.
Смотрите также
-
атрибут
max,
который возвращает максимальное представимое число -
атрибут
tiny,
который возвращает наименьшее положительное нормализованное число -
класс
finfo,
который предоставляет информацию о типах с плавающей точкой -
атрибут
smallest_normal,
который возвращает наименьшее положительное нормализованное число