我已经看到这个问题了很多但从未见过真正的具体答案.所以我将在这里发布一个,希望能帮助人们理解为什么在使用随机数生成器时会出现"模数偏差",就像rand()
在C++中一样.
我有一组n个向量存储在3 xn矩阵中z
.我找到了外用产品np.einsum
.当我使用时间计时:
%timeit v=np.einsum('i...,j...->ij...',z,z)
Run Code Online (Sandbox Code Playgroud)
我得到了结果:
The slowest run took 7.23 times longer than the fastest. This could mean that an
intermediate result is being cached
100000 loops, best of 3: 2.9 µs per loop
Run Code Online (Sandbox Code Playgroud)
这里发生了什么,可以避免吗?最好的3是2.9us,但最慢可能更典型.