Переполнение в NumPy
У uint8
максимальное значение 255.
Если прибавить единицу, результат
не расширяет тип, а оборачивается
по модулю диапазона.
Сложим 255 и 1 в типе
uint8:
import numpy as np
val = np.array(255, dtype=np.uint8)
res = val + np.uint8(1)
print(res) # выведет 0
То же видно, если сложить два массива на границе диапазона:
import numpy as np
a = np.array([254, 255], dtype=np.uint8)
b = np.array([1, 1], dtype=np.uint8)
print(a + b) # выведет [255 0]
Создайте значение 255 с типом
uint8, прибавьте к нему
1 в том же типе и выведите
результат.
Создайте массив 254 и 255
с типом uint8, прибавьте
к каждому элементу 1
и выведите сумму.