擅长:python、mysql、java
<p>这似乎是一个内部纽姆问题。我相信pandas <code>sample</code>方法调用<code>numpy.random.choice</code>。让我们看看numpy如何在不同的数组大小和样本大小下执行。在</p>
<p>创建数组</p>
<pre><code>large = np.arange(1000000)
small = np.arange(1000)
</code></pre>
<p>在不更换样品的情况下计时</p>
^{pr2}$
<p>更换样品计时</p>
<pre><code>%timeit np.random.choice(large, 10, replace=True)
100000 loops, best of 3: 11.7 µs per loop
%timeit np.random.choice(small, 10, replace=True)
100000 loops, best of 3: 12.2 µs per loop
</code></pre>
<p>非常有趣的是,在不进行替换的情况下,大阵列需要的时间要长近3个数量级,而它的大小正好是3个数量级。这意味着numpy随机地对数组排序,然后取前10项。在</p>
<p>使用替换进行采样时,每个值都是独立选择的,因此计时是相同的。在</p>