【问题标题】:Apply Numpy to "for loops"将 Numpy 应用于“for 循环”
【发布时间】:2017-06-12 12:19:41
【问题描述】:
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 用于这些“循环数组”,或者是否有任何其他解决方案可以加快这些循环?

【问题讨论】:

    标签: python arrays performance numpy boxing


    【解决方案1】:

    使用 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
    

    【讨论】:

    • 你这次速度很快! ;)
    猜你喜欢
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2013-09-28
    • 2013-07-21
    • 1970-01-01
    • 2018-08-26
    相关资源
    最近更新 更多