for numpy.bitwise_and.reduce的ufunc.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()
而不是。我在这里想念什么?
目前,我可以通过使用 DeMorgan 的身份(交换 OR 和 AND,以及反转输入和输出)来解决问题:
>>> ~np.bitwise_or.reduce(np.invert(x))
17