只是一种我似乎无法想象的好奇心,它一定是简单的!任何想法都会非常有用!
两个数组,y中只有一个值匹配x中的任何值。我的代码将迭代x中的每个值,并在y中找到匹配的值并计算到每个值的距离。在z [i,j]
中输入找到匹配值所需的最小距离直到我将1更改为1.1并尝试允许其寻找值的某些变化。如果" 1"在y可以在0.9 -1.0之间变化我怎么能解释它?
x = [[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1],[1,1,1,1,1]]
y = [[2,2,2,2,2],[2,2,2,2,2],[2,2,1,2,2],[2,2,2,2,2],[2,2,2,2,2]]
xx = numpy.array(x)
yy = numpy.array(y)
zz = numpy.ones((5,5))
for i in range(0,5):
for j in range(0,5):
match = numpy.where((xx[i,j] == yy))
distance = sqrt((i-(np.array(match[0])))**2 + (j -(np.array(match[1])))**2)
zz[i,j] = min(distance)
我尝试过各种变体:
match = numpy.where((yy-0.1 <= xx[i,j] <= yy+0.1))
&#34;错误:ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()&#34;
答案 0 :(得分:2)
当它只是避免错误时,请尝试
numpy.where((yy-0.1 <= xx[i,j]) & (xx[i,j] <= yy+0.1))
答案 1 :(得分:0)