问题标签 [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.
drools - Drools Fusion滑动窗口示例不起作用
我是 Drools 的新手,正在尝试滑动窗口的概念。
我的问题是检测是否在 2 个销售事件中至少发生了一次成功的交易。即使这样的事件发生与否,我总是得到“销售已发生 2 个事件”的输出。
- - - - - - -博士升 - - - - -
- - - - - - -代码 - - - - -
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)
一种使用双端队列的时间算法。我很难理解算法,什么被推送和弹出,为什么会这样,以及它如何以排序顺序维护窗口而不需要使用每个新元素。谁能解释一下?
matlab - 应用滑动窗口操作后如何设置边框像素值?
在对 MATLAB 中的图像应用滑动窗口操作后stdfilt(i, ones(5, 5))
,我想设置边框像素,即使用填充计算的像素,以NaN
将它们标记为无意义。在此示例中,我会将最外面的两行和两列设置为NaN
. 给定一个 M * M 窗口,如何将 (M - 1) / 2 像素宽的边框设置为特定值?
python - 在 python 中有效地处理一个大的 .txt 文件
我对 python 和一般编程很陌生,但我试图在包含大约 700 万行 python 的制表符分隔的 .txt 文件上运行“滑动窗口”计算。我所说的滑动窗口的意思是,它将运行一个计算,比如 50,000 行,报告数字,然后向上移动说 10,000 行,并在另外 50,000 行上执行相同的计算。我的计算和“滑动窗口”工作正常,如果我在一小部分数据上测试它,它运行良好。但是,如果我尝试在我的整个数据集上运行该程序,它会非常慢(我现在已经运行了大约 40 个小时)。数学很简单,所以我认为它不应该花这么长时间。
我现在阅读 .txt 文件的方式是使用 csv.DictReader 模块。我的代码如下:
我相信这是一次从所有 700 万行中制作一本字典,我认为这可能是它对于较大文件的速度如此之慢的原因。
由于我只对一次对“块”或“窗口”数据运行我的计算感兴趣,有没有更有效的方法来一次只读取指定的行,执行计算,然后用新的指定“重复”指定行的块”或“窗口”?
python - csv.reader 只读取一行
我对python很陌生。我正在尝试处理一个非常大的 .csv 文件(约 680 万行)上的数据。这些行的示例如下所示:
第一列给出了组,第二列给出了位置,第三列给出了我正在读取的值以运行计算。我正在尝试根据位置在“滑动窗口”中执行这些计算。另一个因素是每个组是彼此分开计算的,因为每个组的位置编号都会重新开始。在我的代码中,我首先尝试在执行任何操作之前将组 ID 作为列表读取,“唯一化”该列表,然后使用该列表作为仅在该特定组上执行“滑动窗口”的基础。然后我移动到唯一列表中的下一个组 ID 并再次运行计算。这是我的代码的基础知识(uniq1 函数是唯一化列表的简单方法:
我遇到的问题是它只读取我的数据集的第一行,仅此而已。因此,如果我在“for row in reader”之后插入一个“打印行”,我会得到如下输出:
如果我编写这个完全相同的代码而没有任何进一步的计算和循环,它将打印数据集中的每一行。在这种情况下,我将如何在此循环开始时读取每一行?
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。我感谢大家的输入,我选择了对我帮助最大的答案。
最终更新代码:
r - R:给定坐标的快速滑动窗口
我有一个数据表,其中 nrow 约为一两百万,ncol 约为 200。
一行中的每个条目都有一个与之关联的坐标。
数据的一小部分:
前 4 行的坐标:
我想要的是一个给定数据和窗口大小的函数,它将返回一个大小相同的数据表,并在每列上应用一个平均滑动窗口。或者换句话说 - 对于每个行条目i它会找到坐标在 coords[i]-windsize 和 coords[i]+windsize 之间的条目,并将初始值替换为该区间内的值的平均值(分别针对每一列) .
速度是这里的主要问题。
这是我第一次使用这种功能。
最后一个 for 循环之前的代码非常快,它为我提供了每个条目需要使用的索引列表。然而,一切都崩溃了,因为我需要将 for 循环研磨一百万次,获取我的数据表的子集,并确保我有不止一行能够同时处理所有列。
我的第二种方法是将实际值粘贴在 RANGE 列表中,用零填充空白并从 zoo 包中进行 rollmean,对每一列重复。但这是多余的,因为 rollmean 将通过所有间隙,我最终只会使用原始坐标的值。
非常感谢您在不使用 C 的情况下使其更快的任何帮助。
networking - 往返时间(滑动窗口)?
我有两个问题:
在计算RTT时,我们是否应该考虑传输时间?
两个站 M 和 N 之间的距离是 L 公里。所有帧都是 K 位长。每公里的传播延迟为 t 秒。令 T bits/sec 为信道容量。假设处理延迟可以忽略不计,当使用滑动窗口协议时,为了最大限度地利用,帧中序列号字段的最小位数是多少?
java - 如何将此代码移植到 Java?
我正在实现 2 个使用滑动窗口协议作为数据链路协议和 UDP 套接字进行通信的应用程序。我正在尝试使用 Tanembaum 的书作为参考来实现滑动窗口协议。这是我在书中找到的代码。
我把它翻译成java有点困惑。我不知道线程是如何在这里应用的。我正在寻找任何可以帮助我实现这一点的提示和策略。
编辑
我最困惑:
- 在实现函数 wait_for_event() 和 start_timer() 时。
- 我应该把 UDP 套接字部分放在哪里?我认为 UDP 套接字部分在 to_physical_layer() 和 from_physical_layer() 内。如果我错了,请纠正。
- 由于协议是双向的,两个应用程序是否应该具有相同的代码?
sql - SQL - 如何显示多行结果之间的差异
我有一个 SQL 2012 查询,它给了我以下结果:
结果继续显示相同日期和不同百分比的不同国家。
我需要展示的是,这些百分比仅在同一国家/地区的日期之间变动。
因此,在 02/01 和 01/01 之间,差异为 0.02 - 我可以提取数据并在 excel 中执行此操作,但理想情况下,我希望结果随着查询的移动而出现。