我有这段代码:
import numpy as np
a=np.array([5,6,7,8,9])
b=np.array([5,6,7,8,9])
scoreA = np.array([float(1) / (i + 1) for i in range(len(a))])
scoreB = np.array([0 for i in range(len(b))])
for eleA in a:
if eleA in b:
i, = np.where(b == eleA)
i = i[0]
j, = np.where(a == eleA)
j = j[0]
scoreB[i] = scoreA[j]
print "B is: %f" % scoreB[i]
print "A is: %f" % scoreA[j]
所以基本的想法是:对于数组a和b,如果一个元素在两个数组中都被找到,那么我将把该元素在scoreA中的分数分配给scoreB。但结果是这样的:
B is: 1.000000
A is: 1.000000
B is: 0.000000
A is: 0.500000
B is: 0.000000
A is: 0.333333
B is: 0.000000
A is: 0.250000
B is: 0.000000
A is: 0.200000
这意味着这行代码:
scoreB[i] = scoreA[j]
我的网站出现了问题,它不能正常工作。我该如何解决?
mask = a==b
;scoreB[mask] = scoreA[mask]
。 - Divakar