ufunc.reduce
для numpy.bitwise_and.reduce, похоже, не ведет себя правильно ... я неправильно его использую?numpy.bitwise_and.reduce ведет себя неожиданно?
>>> import numpy as np
>>> x = [0x211f,0x1013,0x1111]
>>> np.bitwise_or.accumulate(x)
array([ 8479, 12575, 12575])
>>> np.bitwise_and.accumulate(x)
array([8479, 19, 17])
>>> '%04x' % np.bitwise_or.reduce(x)
'311f'
>>> '%04x' % np.bitwise_and.reduce(x)
'0001'
Результат reduce()
должен быть последним значением accumulate()
и это не так. Что мне здесь не хватает?
На данный момент, я могу обойти с помощью идентичности де Моргана (замена OR и AND, и инвертирующий вход и выход):
>>> ~np.bitwise_or.reduce(np.invert(x))
17
Начиная с версии 1.12.0 вы должны увидеть правильное значение (-1) для идентификатора 'np.bitwise_and'. См. [PR # 7373] (https://github.com/numpy/numpy/pull/7373). Кстати, очень круто обходное решение! –