gpt4 book ai didi

python - numpy.where() 函数仅用于精确匹配?

转载 作者:行者123 更新时间:2023-12-01 04:46:06 25 4
gpt4 key购买 nike

只是一个好奇心,我似乎无法弄清楚,它一定很简单!任何想法都会非常有帮助!

两个数组,y 中只有一个值与 x 中的任意值匹配。我的代码将迭代 x 中的每个值并找到 y 中的匹配值并计算到每个值的距离。在 z[i,j] 中输入找到匹配值所需的最小距离

它一直有效,直到我将 1 更改为 1.1,并且我尝试允许其寻找的值存在一些变化。如果 y 中的“1”可以在 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))

“错误:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”

最佳答案

当只是为了避免错误时,尝试

numpy.where((yy-0.1 <= xx[i,j]) & (xx[i,j] <= yy+0.1))

关于python - numpy.where() 函数仅用于精确匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29373960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com