2017-06-12 46 views
2
import numpy as np 

c=[10,2000] # only two index for example 

horizontal=[] 
vertical=[] 

for i in range(0,c[0]): 
    for j in range(0, c[1]): 
     horizontal.append(j) 
     vertical.append(i) 

print horizontal 

当我使用数组和循环时,它花费的时间太多。据我了解,由于未定义的数据类型(“我”和“j”),它正在浪费时间。我想用NumPy定义数据类型并加速数组循环。将Numpy应用于“for循环”

如何使用NumPy来处理这些“数组for循环”,或者是否有任何其他解决方案来加速这些循环?

回答

3

最简单的方式做,与NumPy的是np.mgrid它创建了一个meshgrid:

vertical, horizontal = np.mgrid[0:c[0], 0:c[1]] 
vertical = vertical.ravel()  # make it 1D 
horizontal = horizontal.ravel() # make it 1D 
+0

你是快这一次! ;) – Divakar