Почему numpy предупреждает меня о переполнении при скалярном вычитании, если это происходит с int типа np.uint8, но не тPython

Программы на Python
Anonymous
Почему numpy предупреждает меня о переполнении при скалярном вычитании, если это происходит с int типа np.uint8, но не т

Сообщение Anonymous »

Эти две строки:

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

res0 = np.array(np.uint8(40))-80 # np.uint8(216), no warning
res1 = np.uint8(40)-80 # np.uint8(216), warning
похоже, работают одинаково. И res0, и res1 будут np.uint8(216). np.equal(res0,res1) возвращает np.True_.
Однако только вторая строка выдает это предупреждение:

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

RuntimeWarning: overflow encountered in scalar subtract
res1 = np.uint8(40)-80 # np.uint8(216)
Похоже, что это предупреждение будет очень актуально и для первой строки.
Почему это предупреждение вызывает только вторая строка?

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