擅长:python、mysql、java
<p>斯夫斯图曼的出色回答很可能为你解决了这个问题。</p>
<p>我只想补充一点,你怎样才能在纽比实现同样的目标。</p>
<p>我使用了numpy的<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html#numpy.unique">unique</a>和<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html#numpy.in1d">in1d</a>函数。</p>
<pre><code>B_unique_sorted, B_idx = np.unique(B, return_index=True)
B_in_A_bool = np.in1d(B_unique_sorted, A, assume_unique=True)
</code></pre>
<ul>
<li><code>B_unique_sorted</code>包含排序的<code>B</code>中的唯一值。</li>
<li><code>B_idx</code>为这些值保存原始<code>B</code>中的索引。</li>
<li><code>B_in_A_bool</code>是一个布尔数组,其大小为<code>B_unique_sorted</code>
存储<code>B_unique_sorted</code>中的值是否位于<code>A</code>。<br/>
<strong>注意:</strong>我需要在A</em>中查找<em>(B的唯一vals),因为我需要返回有关<code>B_idx</code><br/>
<strong>注意:</strong>我假设<code>A</code>已经是唯一的。</li>
</ul>
<p>现在您可以使用<code>B_in_A_bool</code>来获取公共VAL</p>
<pre><code>B_unique_sorted[B_in_A_bool]
</code></pre>
<p>以及它们各自在原始<code>B</code>中的指数</p>
<pre><code>B_idx[B_in_A_bool]
</code></pre>
<p>最后,我假设这比纯Python for循环快得多,尽管我没有测试它。</p>