繁体   English   中英

将函数逐元素应用于numpy数组的快速方法

[英]Fast way to apply function elementwise to a numpy array

我有一组使用创建的numpy数组

for longtuple in itertools.product([0,1], repeat = n + m -1 ):
    outputs = set(np.convolve(v, longtuple, 'valid').tostring() for v in itertools.product([0,1], repeat = m))
    if (len(outputs) == 2**m):
        print "Hooray!"

但是我实际上想获取np.convolve(v, longtuple, 'valid')每个元素x并应用x >> k & 1 (对于我将指定的k值),然后将结果数组添加到集合中代替。 有一种有效的方法可以做到这一点吗?


我使用set和tostring()只是为了查看是否有重复项。 我不确定这是正确的。

您可以只求卷积的结果并将表达式应用于它:

set((np.convolve(v, longtuple, 'valid') >> k & 1).tostring() for v in itertools.product([0,1], repeat = m))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM