我正在比较矩阵(使用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
答案 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
。
最初ValueERROr, The truth value ...
是标量,但在以后的循环中,它设置为:nearest
假设mtrx[ctr][i]
为mtrx
,请注意索引操作可能仍会返回2d数组,即矩阵。
如果要从矩阵中选择项目,请使用np.matrix
。不要使用顺序括号(mtrx[ctr,i]
) - 除非你清楚地了解他们在做什么。