<p>可以将<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.in1d.html" rel="noreferrer">^{<cd1>}</a>与<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html" rel="noreferrer">^{<cd2>}</a>-</p>
<pre><code>np.nonzero(np.in1d(A,B))[0]
</code></pre>
<p>如果您关心维护订单,也可以使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.searchsorted.html" rel="noreferrer">^{<cd3>}</a>-</p>
<pre><code>np.searchsorted(A,B)
</code></pre>
<p>对于一般情况,当<code>A</code>&;<code>B</code>是未排序数组时,可以在<code>np.searchsorted</code>中引入<code>sorter</code>选项,如下所示-</p>
<pre><code>sort_idx = A.argsort()
out = sort_idx[np.searchsorted(A,B,sorter = sort_idx)]
</code></pre>
<p>我会把我最喜欢的<a href="http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html" rel="noreferrer">^{<cd8>}</a>也加入到这个组合中来解决一个普通的情况-</p>
<pre><code>np.nonzero(B[:,None] == A)[1]
</code></pre>
<p>样本运行-</p>
<pre><code>In [125]: A
Out[125]: array([ 7, 5, 1, 6, 10, 9, 8])
In [126]: B
Out[126]: array([ 1, 10, 7])
In [127]: sort_idx = A.argsort()
In [128]: sort_idx[np.searchsorted(A,B,sorter = sort_idx)]
Out[128]: array([2, 4, 0])
In [129]: np.nonzero(B[:,None] == A)[1]
Out[129]: array([2, 4, 0])
</code></pre>