我有二进制向量X1到X6和Y1到Y6。我想找到X中每个矢量与Y中相应矢量之间的外积,例如(X1,Y1)的外积,(X2,Y2)的外积等。我正在使用numpy.outer(X1,Y1)。现在我想生成一个for循环来遍历所有这些,然后将它们的输出组合在一起。下面是我的代码我收到错误"语法错误:无法分配给运营商"当我删除等式LHS上w旁边的%d时,我得到另一个X未定义的错误。那么,任何人都可以帮我解决这个问题。
X1=[1, 0, 0, 1, 0]
X2=[0, 0, 0, 1, 1]
X3=[1, 0, 1, 0, 0]
X4=[1, 0, 0, 0, 1]
X5=[1, 1, 0, 0, 0]
X6=[0, 1, 0, 1, 0]
Y1=[[1], [0], [0], [0], [0]]
Y2=[[0], [0], [1], [0], [0]]
Y3=[[0], [1], [0], [0], [0]]
Y4=[[0], [0], [0], [1], [0]]
Y5=[[0], [0], [0], [0], [1]]
Y6=[[0], [0], [0], [1], [0]]
w=(5,5)
wt= np.zeros((w),dtype=np.integer)
for i in range (1, 6):
w%d=np.outer(X%d,Y%d) % (i, i, i)
wt=wt or w%d % i
print wt
由于
答案 0 :(得分:1)
您可能希望将变量放在数组中:
X = [X1, X2, ..., X6]
Y = [Y1, Y2, ..., Y6]
那样:
W = [np.outer(x, y) for (x,y) in zip(X,Y)]
wt = reduce(lambda a,b: a or b,
W,
np.zeros((5,5),dtype=np.integer))