Разрешить переполнение для типов NumPy - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь получить "нормальное" поведение переполнения / переполнения языков C-типа в Python.К моему удивлению, RuntimeWarning повышается, когда я пытаюсь получить такое поведение.Пример:

np.uint8(255) + np.uint8(1)
>>> RuntimeWarning: overflow encountered in ubyte_scalars

Есть ли способ имитировать желаемое поведение, то есть, что 255 + 1 дает 0?

Я пробовал документы, но не могу найти это поведение документированным.

1 Ответ

0 голосов
/ 27 февраля 2019

Я считаю, что NumPy дает вам правильное поведение.

In [1]: np.uint8(255) + np.uint8(1)
/usr/bin/ipython:1: RuntimeWarning: overflow encountered in ubyte_scalars
  #!/usr/bin/python2
Out[1]: 0

Вы можете отключить предупреждение, запустив:

In [1]: np.seterr(over='ignore')
Out[1]: {'divide': 'warn', 'invalid': 'warn', 'over': 'warn', 'under': 'ignore'}

In [2]: np.uint8(255) + np.uint8(1)
Out[2]: 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...