擅长:python、mysql、java
<p>尝试以下操作:</p>
<pre><code>import numpy as np
var = [
[1.0, 1.0, 0.0, 0.0],
[1.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 2.0],
[3.0, 3.0, 0.0, 2.0]
]
rows, cols = np.nonzero(var)
for r, c in zip(rows, cols):
print var[r][c]
</code></pre>
<p>退货:</p>
^{pr2}$
<p>您得到的结果是<em>,因为</em><code>np.nonzero</code>返回一个元组,因为数组有2个维度,所以它有两个数组。现在,每个数组都需要一起使用,所以在我的示例中,函数返回行号,然后返回列号。让我们看看:</p>
<pre><code>>>> import numpy as np
>>> var = [
[1.0, 1.0, 0.0, 0.0],
[1.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 2.0],
[3.0, 3.0, 0.0, 2.0]
]
>>>
>>> non_zeroes = np.nonzero(var)
>>> non_zeroes
(array([0, 0, 1, 2, 3, 3, 3]), array([0, 1, 0, 3, 0, 1, 3]))
</code></pre>
<p>如果我们仔细观察一下,就会发现<code>var[0][0]</code>确实是非零的。<code>var[3][3]</code>也是。但是,在第一个元组中看不到<code>2</code>,在相应的索引中看不到另一个{<cd4>}。在</p>