我有一组使用
创建的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()只是为了查看是否有任何重复。但我不确定它是否正确。
答案 0 :(得分:1)
您可以获取卷积的结果并将表达式应用于它:
set((np.convolve(v, longtuple, 'valid') >> k & 1).tostring() for v in itertools.product([0,1], repeat = m))