hav*_*063 9 python arrays bit-manipulation numpy list
我有一个按位元素列表,例如[1,1,1],我想在列表中的每个元素之间进行按位OR运算.所以,例如
对于[1,1,1]做
1 | 1 | 1 = 1
或[1,17,1]做
1 | 17 | 1 = 17
如何在不循环的情况下执行此操作?Numpy的bitwise_or似乎只适用于2个阵列.是否有点和/或 适用于每个元素,类似于sum或np.mean?谢谢.
Ash*_*ary 20
你可以用reduce
与operator.ior
:
>>> from operator import ior
>>> lst = [1, 17, 1]
>>> reduce(ior, lst)
17
Run Code Online (Sandbox Code Playgroud)
正如@DSM在评论中所建议的那样,numpy等价物将是:
>>> import numpy as np
>>> arr = np.array(lst)
>>> np.bitwise_or.reduce(arr)
17
Run Code Online (Sandbox Code Playgroud)
这适用于numpy reduce:
>>> ar = numpy.array([1,17,1])
>>> numpy.bitwise_or.reduce(ar)
17
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6510 次 |
最近记录: |