Константа PZERO
Константа PZERO из модуля numpy представляет положительный ноль.
В арифметике с плавающей точкой существует как положительный (+0.0), так и отрицательный (-0.0) ноль.
Константа PZERO явно задаёт положительный ноль, что может быть полезно при
сравнениях, математических операциях и проверке знака числа.
Синтаксис
np.PZERO
Константа не принимает аргументов и всегда возвращает значение типа float,
равное +0.0.
Пример
Давайте выведем значение константы PZERO и проверим её тип:
import numpy as np
res = np.PZERO
print(res)
print(type(res))
Результат выполнения кода:
0.0
<class 'float'>
Пример
Сравним константу PZERO с обычным нулём и отрицательным нулём:
import numpy as np
print(np.PZERO == 0.0)
print(np.PZERO == -0.0)
print(np.PZERO is 0.0)
Результат выполнения кода:
True
True
False
Константа PZERO равна и обычному нулю, и отрицательному нулю при сравнении по значению,
но не является тем же объектом, что и литерал 0.0.
Пример
Использование константы PZERO в математических операциях с делением:
import numpy as np
pos_zero = np.PZERO
neg_zero = np.NZERO
print(1.0 / pos_zero)
print(1.0 / neg_zero)
Результат выполнения кода:
inf
-inf
Деление на положительный ноль даёт положительную бесконечность,
а на отрицательный - отрицательную. Это демонстрирует важность различия
между PZERO и NZERO.
Пример
Проверим знак числа с помощью функции sign для положительного и отрицательного нуля:
import numpy as np
arr = np.array([np.PZERO, np.NZERO])
print(np.sign(arr))
Результат выполнения кода:
[ 0. -0.]
Функция sign возвращает 0.0 для положительного нуля и -0.0 для отрицательного,
что позволяет различать их в вычислениях.