Атрибут max
Атрибут max класса finfo возвращает максимальное конечное положительное число, которое может быть представлено данным типом данных с плавающей запятой. Это значение зависит от разрядности типа и формата хранения чисел в памяти. Атрибут доступен только для объектов finfo, созданных для типов с плавающей точкой.
Синтаксис
np.finfo(dtype).max
Пример
Давайте получим максимальное значение для типа float32:
import numpy as np
res = np.finfo(np.float32).max
print(res)
Результат выполнения кода:
3.4028235e+38
Пример
Давайте получим максимальное значение для типа float64:
import numpy as np
res = np.finfo(np.float64).max
print(res)
Результат выполнения кода:
1.7976931348623157e+308
Пример
Давайте сравним максимальные значения для разных типов данных:
import numpy as np
types = [np.float16, np.float32, np.float64]
for dtype in types:
max_val = np.finfo(dtype).max
print(f"{dtype}: {max_val}")
Результат выполнения кода:
<class 'numpy.float16'>: 65500.0
<class 'numpy.float32'>: 3.4028235e+38
<class 'numpy.float64'>: 1.7976931348623157e+308
Пример
Давайте проверим, что происходит при попытке создать число, превышающее максимальное значение:
import numpy as np
max_float32 = np.finfo(np.float32).max
arr = np.array([max_float32 * 2], dtype=np.float32)
print(arr)
Результат выполнения кода:
[inf]
Как видно из примера, при попытке сохранить число, превышающее максимальное значение, оно преобразуется в бесконечность inf.
Пример
Давайте получим максимальное значение для типа float32 и преобразуем его в десятичную и научную нотацию:
import numpy as np
max_val = np.finfo(np.float32).max
print(f"Decimal: {max_val:.0f}")
print(f"Scientific: {max_val:.6e}")
Результат выполнения кода:
Decimal: 340282346638528859811704183484516925440
Scientific: 3.402823e+38