我试图找到一个非常大的2D numpy数组的一个维度上的最小数组索引.我发现这很慢(已经尝试过加速瓶颈,这只是一个很小的改进).但是,采用直线最小值似乎要快一个数量级:
import numpy as np
import time
randvals = np.random.rand(3000,160000)
start = time.time()
minval = randvals.min(axis=0)
print "Took {0:.2f} seconds to compute min".format(time.time()-start)
start = time.time()
minindex = np.argmin(randvals,axis=0)
print "Took {0:.2f} seconds to compute argmin".format(time.time()-start)
Run Code Online (Sandbox Code Playgroud)
在我的机器上输出:
Took 0.83 seconds to compute min
Took 9.58 seconds to compute argmin
Run Code Online (Sandbox Code Playgroud)
有没有理由说argmin这么慢?有没有什么方法可以加快到与min相当的速度?