【发布时间】:2015-09-14 15:15:52
【问题描述】:
对于 2D 索引的随机数组中的每个元素(可能有重复项),我想“+=1”到 2D 零数组中的相应网格。但是,我不知道如何优化计算。使用标准的 for 循环,如下所示,
def interadd():
U = 100
input = np.random.random(size=(5000,2)) * U
idx = np.floor(input).astype(np.int)
grids = np.zeros((U,U))
for i in range(len(input)):
grids[idx[i,0],idx[i,1]] += 1
return grids
运行时间可能非常重要:
>> timeit(interadd, number=5000)
43.69953393936157
有没有办法向量化这个迭代过程?
【问题讨论】:
标签: python loops numpy optimization vectorization