Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于循环性能的python_Python_Performance_Frequency Distribution - Fatal编程技术网

用于循环性能的python

用于循环性能的python,python,performance,frequency-distribution,Python,Performance,Frequency Distribution,`提高python“for”循环的性能:我需要知道如何确定我的循环是否有效?如果它迭代X个循环,那么可接受的时间应该是多少 我试着用python创建一个频率分布表的函数。我有一个numpy数组形式的连续数据,我想创建类间隔,并将每个元素放入这些类间隔中(我使用“for循环”来实现)。我已经创建了这个函数,但是我不确定我的函数是否有效 def maketable(data,bins): data=np.array(data) edges=np.linspace(min(data),

`提高python“for”循环的性能:我需要知道如何确定我的循环是否有效?如果它迭代X个循环,那么可接受的时间应该是多少

我试着用python创建一个频率分布表的函数。我有一个numpy数组形式的连续数据,我想创建类间隔,并将每个元素放入这些类间隔中(我使用“for循环”来实现)。我已经创建了这个函数,但是我不确定我的函数是否有效

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)
def生成表(数据、存储箱):
data=np.array(数据)
edges=np.linspace(最小(数据)、最大(数据)、存储箱)#创建ClassInterval
类={(边[x],边[x+1]):范围内x的0(bin-1)}{classlimits的元组:frequency}
#对于数据数组中的每个值,我们检查它是否落在一个间隔(一个箱子)中。如果是,则增加频率
对于数据中的val:
对于类中的间隔。键():

如果val>=interval[0]和val,那么看起来您实际上想要获得的是一些数据的直方图。 然后,可以使用numpy实现您的函数:

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

然后,您可以返回您的
名称。

因此,您实际试图获取的似乎是某些数据的直方图。 然后,可以使用numpy实现您的函数:

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

然后,您可以返回您的
名称。

提示:您应该能够使用pandas函数获得相同的结果,它甚至可能更快。我也不知道这个。谢谢你,伙计。我花了几个小时做了一个想法:你应该可以用熊猫的功能得到同样的结果,甚至可能更快。我也不知道。谢谢你,伙计。我花了几个小时做它,我不知道那个。谢谢我想知道如何判断循环是否有效。项目数量和所用时间之间是否有关系?就像循环这么多项目一样,时间应该在这么多左右。Python似乎很慢,所以如果我不知道循环是否正常,我就不能再进一步了。@KewalTakhellambam迭代次数和循环时间之间没有相关性,除了比例因子。这完全取决于每次迭代都在做什么@KewalTakhellambam您总是希望在numpy或pandas之类的库中寻找实现,因为它们通常在Cython中实现,这要快得多。比较np.histogram和for循环:)albeksdurf如果你是对的。我花了几个小时。我本可以使用其中一个库函数:)哦,我不知道那个。谢谢我想知道如何判断循环是否有效。项目数量和所用时间之间是否有关系?就像循环这么多项目一样,时间应该在这么多左右。Python似乎很慢,所以如果我不知道循环是否正常,我就不能再进一步了。@KewalTakhellambam迭代次数和循环时间之间没有相关性,除了比例因子。这完全取决于每次迭代都在做什么@KewalTakhellambam您总是希望在numpy或pandas之类的库中寻找实现,因为它们通常在Cython中实现,这要快得多。比较np.histogram和for循环:)albeksdurf如果你是对的。我花了几个小时。我可以使用其中一个库函数:)