问题标签 [sliding-window]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2016 浏览

drools - Drools Fusion滑动窗口示例不起作用

我是 Drools 的新手,正在尝试滑动窗口的概念。

我的问题是检测是否在 2 个销售事件中至少发生了一次成功的交易。即使这样的事件发生与否,我总是得到“销售已发生 2 个事件”的输出。

- - - - - - -博士升 - - - - -

- - - - - - -代码 - - - - -

0 投票
1 回答
374 浏览

algorithm - 查找以随机方式存储的连续增加的子序列

问题是这样的,给定一个长度为 的数组N,我们必须找到所有长度的子序列,W使得这些元素在排序时形成一个间隔为 1 的算术级数。所以对于像和5W这样的数组,切片可以是被认为是一个这样的子序列,因为在排序时,它产生,一个具有共同差为 1 的 AP。[1,4,6,3,5,2,7,9]W[4,6,3,5,2][2,3,4,5,6]

想到的直接解决方案是有一个滑动窗口,对于每个新元素,弹出旧元素,推送新元素,对窗口进行排序,如果对于那个窗口,window[w-1] - window[0] + 1 = w那么它就是这样一个子序列。但是,这需要O(NlogN)时间,而Codechef的解决方案提出了O(N)一种使用双端队列的时间算法。我很难理解算法,什么被推送和弹出,为什么会这样,以及它如何以排序顺序维护窗口而不需要使用每个新元素。谁能解释一下?

0 投票
3 回答
1206 浏览

matlab - 应用滑动窗口操作后如何设置边框像素值?

在对 MATLAB 中的图像应用滑动窗口操作后stdfilt(i, ones(5, 5)),我想设置边框像素,即使用填充计算的像素,以NaN将它们标记为无意义。在此示例中,我会将最外面的两行和两列设置为NaN. 给定一个 M * M 窗口,如何将 (M - 1) / 2 像素宽的边框设置为特定值?

0 投票
2 回答
2174 浏览

python - 在 python 中有效地处理一个大的 .txt 文件

我对 python 和一般编程很陌生,但我试图在包含大约 700 万行 python 的制表符分隔的 .txt 文件上运行“滑动窗口”计算。我所说的滑动窗口的意思是,它将运行一个计算,比如 50,000 行,报告数字,然后向上移动说 10,000 行,并在另外 50,000 行上执行相同的计算。我的计算和“滑动窗口”工作正常,如果我在一小部分数据上测试它,它运行良好。但是,如果我尝试在我的整个数据集上运行该程序,它会非常慢(我现在已经运行了大约 40 个小时)。数学很简单,所以我认为它不应该花这么长时间。

我现在阅读 .txt 文件的方式是使用 csv.DictReader 模块。我的代码如下:

我相信这是一次从所有 700 万行中制作一本字典,我认为这可能是它对于较大文件的速度如此之慢的原因。

由于我只对一次对“块”或“窗口”数据运行我的计算感兴趣,有没有更有效的方法来一次只读取指定的行,执行计算,然后用新的指定“重复”指定行的块”或“窗口”?

0 投票
3 回答
2592 浏览

python - csv.reader 只读取一行

我对python很陌生。我正在尝试处理一个非常大的 .csv 文件(约 680 万行)上的数据。这些行的示例如下所示:

第一列给出了组,第二列给出了位置,第三列给出了我正在读取的值以运行计算。我正在尝试根据位置在“滑动窗口”中执行这些计算。另一个因素是每个组是彼此分开计算的,因为每个组的位置编号都会重新开始。在我的代码中,我首先尝试在执行任何操作之前将组 ID 作为列表读取,“唯一化”该列表,然后使用该列表作为仅在该特定组上执行“滑动窗口”的基础。然后我移动到唯一列表中的下一个组 ID 并再次运行计算。这是我的代码的基础知识(uniq1 函数是唯一化列表的简单方法:

我遇到的问题是它只读取我的数据集的第一行,仅此而已。因此,如果我在“for row in reader”之后插入一个“打印行”,我会得到如下输出:

如果我编写这个完全相同的代码而没有任何进一步的计算和循环,它将打印数据集中的每一行。在这种情况下,我将如何在此循环开始时读取每一行?

0 投票
3 回答
1153 浏览

python - Python:可变宽度的滑动窗口

我正在用 Python 编写一个程序,该程序正在处理实验期间生成的一些数据,它需要估计数据的斜率。我已经编写了一段代码,可以很好地做到这一点,但是速度非常慢(而且我不是很有耐心)。让我解释一下这段代码是如何工作的:

1)它抓取一小块大小为 dx 的数据(从 3 个数据点开始)

2) 评估差值(即 |y(x+dx)-y(x-dx)| )是否大于某个最小值(40x std.dev. of noise)

3)如果差异足够大,它将使用OLS回归计算斜率。如果差值太小,会增加 dx 并用这个新的 dx 重做循环

4) 这对所有数据点都继续

[进一步查看更新的代码]

对于大约 100k 次测量的数据大小,这大约需要 40 分钟,而程序的其余部分(它执行的处理比这更多)大约需要 10 秒。我敢肯定有一种更有效的方法来进行这些操作,你们能帮帮我吗?

谢谢

编辑:

好的,所以我通过仅使用二进制搜索解决了问题,将允许的步骤数限制为 200。我感谢大家的输入,我选择了对我帮助最大的答案。

最终更新代码:

0 投票
2 回答
2953 浏览

r - R:给定坐标的快速滑动窗口

我有一个数据表,其中 nrow 约为一两百万,ncol 约为 200。

一行中的每个条目都有一个与之关联的坐标。

数据的一小部分:

前 4 行的坐标:

我想要的是一个给定数据和窗口大小的函数,它将返回一个大小相同的数据表,并在每列上应用一个平均滑动窗口。或者换句话说 - 对于每个行条目i它会找到坐标在 coords[i]-windsize 和 coords[i]+windsize 之间的条目,并将初始值替换为该区间内的值的平均值(分别针对每一列) .

速度是这里的主要问题。

这是我第一次使用这种功能。

最后一个 for 循环之前的代码非常快,它为我提供了每个条目需要使用的索引列表。然而,一切都崩溃了,因为我需要将 for 循环研磨一百万次,获取我的数据表的子集,并确保我有不止一行能够同时处理所有列。

我的第二种方法是将实际值粘贴在 RANGE 列表中,用零填充空白并从 zoo 包中进行 rollmean,对每一列重复。但这是多余的,因为 rollmean 将通过所有间隙,我最终只会使用原始坐标的值。

非常感谢您在不使用 C 的情况下使其更快的任何帮助。

0 投票
2 回答
1418 浏览

networking - 往返时间(滑动窗口)?

我有两个问题:

  1. 在计算RTT时,我们是否应该考虑传输时间?

  2. 两个站 M 和 N 之间的距离是 L 公里。所有帧都是 K 位长。每公里的传播延迟为 t 秒。令 T bits/sec 为信道容量。假设处理延迟可以忽略不计,当使用滑动窗口协议时,为了最大限度地利用,帧中序列号字段的最小位数是多少?

0 投票
2 回答
973 浏览

java - 如何将此代码移植到 Java?

我正在实现 2 个使用滑动窗口协议作为数据链路协议和 UDP 套接字进行通信的应用程序。我正在尝试使用 Tanembaum 的书作为参考来实现滑动窗口协议。这是我在书中找到的代码。

我把它翻译成java有点困惑。我不知道线程是如何在这里应用的。我正在寻找任何可以帮助我实现这一点的提示和策略。

编辑

我最困惑:

  • 在实现函数 wait_for_event() 和 start_timer() 时。
  • 我应该把 UDP 套接字部分放在哪里?我认为 UDP 套接字部分在 to_physical_layer() 和 from_physical_layer() 内。如果我错了,请纠正。
  • 由于协议是双向的,两个应用程序是否应该具有相同的代码?
0 投票
3 回答
783 浏览

sql - SQL - 如何显示多行结果之间的差异

我有一个 SQL 2012 查询,它给了我以下结果:

结果继续显示相同日期和不同百分比的不同国家。

我需要展示的是,这些百分比仅在同一国家/地区的日期之间变动。

因此,在 02/01 和 01/01 之间,差异为 0.02 - 我可以提取数据并在 excel 中执行此操作,但理想情况下,我希望结果随着查询的移动而出现。