如何加速这个双循环?

时间:2017-12-09 10:57:53

标签: python performance numpy for-loop

这是将每列乘以列号的代码。

像这样。

[[1,1,1],
 [2,2,2],
 [1,2,3],
 ...]

=>

[[1,2,3],
 [2,4,6],
 [1,4,9],
 ...]

我希望减少运行此代码所需的时间。 时间应该是此代码运行时间的一半。 (现在它大概是0.04秒,但它应该是大约0.02秒!)

但是,它仍然必须是“双循环”。 如何通过保持结构来加速这个?

import numpy as np
import time
x = np.ones((10000,3), dtype = np.int32)
start_time = time.clock()
y1 = np.empty((10000,3), dtype = np.int32)
for a in range(10000):
    for b in range(3):
        y1[a,b] = x[a,b]*(b)
print(time.clock() - start_time)

0 个答案:

没有答案