擅长:python、mysql、java
<p>问题是<code>num</code>在<code>if num>0:</code>中使用时不是标量。它不是数组就是矩阵。只有当<code>if</code>是标量时,<code>if</code>命令才有效。在</p>
<p>我将尝试说明(怀疑您的输入是<code>matrix</code>)类型:</p>
<pre><code>In [1]: row=np.matrix([1,2,3,4,5])
...
In [3]: row.shape
Out[3]: (1, 5)
In [4]: for num in row:
...: print num, num.shape
...:
[[1 2 3 4 5]] (1, 5)
...
In [6]: num>0
Out[6]: matrix([[ True, True, True, True, True]], dtype=bool)
In [7]: if num>0:
...: print 'yes'
...
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
</code></pre>
<p>在可能的情况下,<code>matrix</code>上的操作返回<code>matrix</code>,一个2d数组。即使一维是1。在</p>
<p>现在,如果cd1{cd1}是一个很好的<cd1}数组,那么现在就把它转换成cd9}。在</p>
<p>当我遇到这样的问题时,我会抛出很多类似<code>print row.shape</code>的命令,以确保各种数组的维数是我所期望的。在</p>