擅长:python、mysql、java
<p>为了确保不会将同一元素翻转两次甚至更多次,我们可以使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html" rel="nofollow noreferrer">^{<cd1>}</a>将其可选的<code>replace</code>参数设置为False,在该长度范围内创建唯一索引。然后,简单地索引到输入数组并一次性翻转就可以得到所需的输出。因此,我们会有这样的实现-</p>
<pre><code>idx = np.random.choice(n,m,replace=False)
a[idx] = -a[idx]
</code></pre>
<p><strong>更快的版本:</strong>对于<code>np.random_choice</code>的更快版本,我建议阅读<a href="https://stackoverflow.com/a/35572771/3293881">^{<cd4>}</a>,它探索使用<code>np.argpartition</code>来模拟相同的行为。在</p>