查找列表的不重叠间隔的函数

时间:2018-06-29 05:45:03

标签: python arrays python-3.x loops

我需要找到函数L的变化,其中L是一个从0到10(例如)以0.5为步长变化的数字。这是问题所在:
S是排序数字x的序列。我们假设在区间[x,x + L]中,k个x的数目位于。
必须按以下方式为S中的每个x计算函数F。

对于每个x,我需要找到函数F

要了解F随L的变化,我必须找到特定L数组中所有x的F(x,L),然后取它们的平均值。预防措施是使间隔[x,x + L] 不重叠

我已经尝试过以下代码,以便仅针对一个L值获得不重叠的间隔。

S= np.array([0.1,0.5,2.2,3.1,4.2,5.1,5.2,5.3,6.0,6.1,7.1])
L=0.5
ub = S[0]+L
for i in ev:
     if i<=ub:
         ub == ub
         first_stack=S[S<=ub]

     else:
         ub = i+0.5
         print(i,ub)
         intrvl=S[(S>=i)&(S<=ub)]
         print(intrvl)
         count=np.size(intrvl)
         print("count=",count)

使用上述代码,

  1. 我应该能够获得所有T以及F的区间(包括第一个堆栈)。
  2. 然后我可以为L循环运行,其值在0到10之间变化

但是first_stack的值是错误的。 对于L = 0.5,应该是[0.1,0.5],这不是我得到的。

此外,该方法往往冗长且效率低下。 我可以指导一种更有效的方法吗? 非常感谢。

0 个答案:

没有答案