比较矩阵值的值错误

2024-05-16 18:58:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我将矩阵(使用NumPy创建)中的每个值与变量的值进行比较。但我一直有个错误:

File "main.py", line 63, in findClusters if(val<=nearest): ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我试着打印出这个值,它不是一个数组,而是一个浮点值。当我给出all(val)时,错误是“float is not iterable”我的代码有什么问题

for i in range(0,count):
    nearest = 99999.99
    for ctr in center:
        val = mtrx.item((ctr,i))
        if(val<=nearest):
            nearest = mtrx[ctr][i]
            centerassign = ctr

Tags: inpynumpyforifismain错误
1条回答
网友
1楼 · 发布于 2024-05-16 18:58:26

检查valnearest。一个或另一个,或两者都是数组(或numpy矩阵)。比较的结果是一个数组多值。但是Pythonif需要一个布尔值

有关ValueERROr, The truth value ...的许多问题,请查看相关侧边栏

最初nearest是标量,但在以后的循环中它被设置为:mtrx[ctr][i]

假设mtrxnp.matrix,注意索引操作仍然可能返回一个2d数组,一个矩阵

如果要从矩阵中选择项,请使用mtrx[ctr,i]。不要使用顺序括号([][])-除非你清楚地理解它们在做什么

相关问题 更多 >