将函数elementwise应用于numpy数组的快速方法

时间:2014-03-05 19:59:45

标签: python numpy

我有一组使用

创建的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()只是为了查看是否有任何重复。但我不确定它是否正确。

1 个答案:

答案 0 :(得分:1)

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

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