擅长:python、mysql、java
<p>如果您不想使用for循环,可以使用列表理解:</p>
<pre><code>mask = [a[index] for index in b]
</code></pre>
<p>如果你甚至不想使用“for”这个词,你可以将张量转换成numpy,并使用numpy索引</p>
<pre><code>mask = torch.tensor(a.numpy()[b.numpy()])
</code></pre>
<p>更新</p>
<p>可能误解了你的问题。在这种情况下,我想说实现这一点的最佳方法是通过列表理解。(切片可能无法实现这一点</p>
<pre><code>mask = [index for index,value in enumerate(a) if value in b.tolist()]
</code></pre>
<p>它迭代a中的每个元素,获取它们的索引和值,如果值在b中,则获取索引</p>