擅长:python、mysql、java
<p>您只需执行以下操作:</p>
<pre><code>ans = [(x,y) for x,y in zip(list1,list2) if all(~isnan(x))]
#[(array([ 3., 7., 8.]), 2), (array([ 1., 1., 1.]), 3)]
</code></pre>
<p>从中可以提取每个值:</p>
<pre><code>l1, l2 = zip(*ans)
#l1 = (array([ 3., 7., 8.]), array([ 1., 1., 1.]))
#l2 = (2,3)
</code></pre>
<p>建议使用<code>itertools</code>模块中的<code>izip</code>,它使用迭代器,可以根据您的问题节省大量内存。</p>
<p>代替<code>~</code>,您可以使用<code>numpy.logical_not()</code>,这可能更具可读性。</p>
<p>欢迎来到Python!</p>