python for 循环性能

python for loop performance

`提高 python 'for' 循环中的性能:我需要知道如何确定我的循环是否有效?如果迭代 X 次循环,acceptable 的时间应该是多少?

我试图创建一个函数来创建 table 和 python 的频率分布。我有一个 numpy 数组形式的连续数据,我想制作 class 间隔并将每个元素放在这些 class 间隔中(我使用 'for loop' 来做到这一点)。我已经创建了函数,但我不确定我的函数是否有效。

def maketable(data,bins):
    data=np.array(data)
    edges=np.linspace(min(data),max(data),bins)  #creating classintervals
    classes={(edges[x],edges[x+1]):0 for x in range(bins-1)} #{tuple of classlimits:frequency}
    #for every value in data array we check if it falls in an interval(a bin) if yes,increment frequency 
    for val in data:
       for interval in classes.keys():
           if val>=interval[0] and val<=interval[1]:
              classes[interval]+=1
              break
    return(classes)

"Finished 'maketable' in 0.17328 secs "。数据包含 20,604 个值,函数需要 0.17 秒才能完成。我想知道是否可以。我感谢任何帮助。

所以看起来你实际上想要获得的是一些数据的直方图。 然后可以使用 numpy 实现您的功能:

classes, bins = np.histogram(data, bins=bins)

然后你可以return你的classes名字。