ValueError用于比较矩阵的值

时间:2015-10-12 03:20:15

标签: python numpy matrix

我正在比较矩阵(使用NumPy创建)中的每个值和变量的值。但我一直收到这个错误:

  

在findClusters中的文件" main.py",第63行       if(val< = nearest):ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

我尝试打印出值而不是数组,而是浮点值。当我给所有(val)时,错误是" float不可迭代"我的代码怎么了?

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

1 个答案:

答案 0 :(得分:1)

检查<?xml version="1.0" encoding="ISO-8859-1" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" doctype-system="customers.dtd" encoding="ISO-8859-1" indent="yes" /> <xsl:template match="/"> <xsl:element name="customers"> <xsl:apply-templates select="orders/order"> <xsl:sort select="custid" /> </xsl:apply-templates> </xsl:element> <xsl:apply-templates select="order"> <xsl:element name="customer"> <xsl:attribute name="id"> <xsl:value-of select="@custid" /> </xsl:attribute> <xsl:element name="order"> <xsl:attribute name="orderid"> <xsl:value-of select="@id" /> <xsl:element name="qty"> <xsl:value-of select="@qty" /> <xsl:element name="date"> <xsl:value-of select="date" /> <xsl:element name="amount"> <xsl:value-of select="amount" /> </xsl:element> <xsl:value-of select="custid" /> </xsl:templates> </xsl:stylesheet> val。一个或另一个,或两者都是数组(或numpy矩阵)。比较的结果是一个数组 - 多值。但Python nearest需要一个布尔值。

查看相关侧栏,了解有关if

的众多SO问题

最初ValueERROr, The truth value ...是标量,但在以后的循环中,它设置为:nearest

假设mtrx[ctr][i]mtrx,请注意索引操作可能仍会返回2d数组,即矩阵。

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