将 Numpy 应用于 "for loops"

Apply Numpy to "for loops"

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

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

我如何为这些使用 NumPy "array for loops" 或者是否有任何其他解决方案来加速这些循环?

用 NumPy 做到这一点的最简单方法是 np.mgrid 创建网格:

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