问题标签 [cumsum]

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 回答
466 浏览

python - 将 cumsum 限制为仅前 4 行

初学者的问题:

我想在我的数据框上创建一个累积总和列,但我只希望该列添加前 4 行(包括当前行)的值。我还需要对框架中的每个新“类型”重新开始计数。

这就是我想要的:

0 投票
2 回答
448 浏览

matlab - Cumulative Summation in intervals - MATLAB

Suppose I have 2 input vectors x and reset of the same size

and an output y which is the cumulative sum of the elements in x. Whenever the value of resets corresponds to 1, the cumulative sum for the elements reset and start all over again just like below

How would I implement this in Matlab?

0 投票
2 回答
12125 浏览

r - cumsum 按组

假设数据看起来像

a <- cumsum(data[,"num"]) # 1 3 7 10 17

我需要团体积累的东西。实际上,我有多个列作为分组指标。我想通过我定义的子组获得累计和。

例如

如果我group1只分组,那么输出应该是

如果我按两个变量分组,group1,group2那么输出是

0 投票
2 回答
195 浏览

r - 在 R 中,为什么不 -1 + 1 = 0

有人可以帮我理解为什么 -1 + 1 <> 0 吗?

有人可以帮我理解为什么当内置函数 consum()、我的函数 ct() 和 Excel 都在做同样的事情时,我会得到三个不同的值吗?

现在,我很确定答案是一个“圆形”问题,但我无法弄清楚这个问题的那部分来自哪里。我的意思是,这一切看起来都很简单。

在 R 中,当我构建序列 'a' 然后运行 ​​cumsum(a) 时,我没有得到 0 的结果,就像我期望的那样。如果我尝试使用函数计算相同的值,我也会得到不同的答案。最后,如果我尝试使用 Excel 计算相同的值,我会得到第三个答案。

这就是我使用 cumsum() 得到的结果:

我写了一个快速函数来测试它并期望得到相同的答案(或 0),但我得到了一个完全不同的答案。这是我的函数及其结果:

如果我将 for 循环中的最后一行更改为此,那么我会得到预期的答案 0:

在 Excel 中,使用与我的 ct() 函数相同的逻辑,我得到 -2.886580E-15 的最终结果(不四舍五入值)。

0 投票
1 回答
1241 浏览

r - 在 R 中以特定累积和(或概率)识别向量索引或值

这似乎是一个简单的问题,但由于某种原因,我一直无法找到解决方案。

我有一个总和为 1 的概率矩阵,我想知道在哪个值处我的累积总和为 0.5。换句话说,如果我把这个矩阵变成一个排序的向量,我必须从最高值走多远才能得到 0.5 的累积和。

我将矩阵转换为值向量并使用 plot(cumsum(x)) 生成以下图表:

向量值的累积和

我可以做类似的事情

在 x 值为 0.00001 时获得累积总和,但我想朝另一个方向前进,即累积总和为 0.5 时的 x 值是多少?

quantile() 给了我排序值的 50% 的值(例如,它会给我上图中 sort(x)[4e+05] 的值),这不是我想要的。

感谢您对这个看似简单的问题的帮助!

干杯,乔什

解决方案:

给出累积总和 0.5 的值(感谢@plafort),尽管似乎应该有更简单的方法!

0 投票
5 回答
146 浏览

arrays - 算法:给定一个数字数组 A,创建一个数组 B,其中 B[i] = sum(A[j]: A[j] <= A[i])

示例:A = [4, 1, 3, 2, 3, 3]。然后我们会得到 B = [16, 1, 12, 3, 12, 12]。

方法1:对于每个i,只需搜索A并总结小于或等于A[i]的数字。粗略地说,这需要遍历 A n 次,因此需要 O(n^2) 时间。

方法2:对A排序得到A',然后只需找到A'的cumsum。这只需要穿过 A' 一次。所以总的运行时间就是排序,O(n log n)。

但是,当有关系时,这不起作用。对于上面的例子,我们得到 A' = [1, 2, 3, 3, 3, 6],所以 cumsum(A') = [1, 3, 6, 9, 12, 16],不一样作为B(排序)。

有没有办法解决这个问题,使它仍然在 O(n log n) 中运行?

0 投票
2 回答
934 浏览

r - 行的累积总和,直到选择行号,然后对 R 中的列矩阵求和

我正在尝试对矩阵执行以下求和:

假设矩阵是:

我想分别对列号 1、2、3 的行号 5、7、10 的行进行累积求和。(真实数据可以有任意数量的行和列)。

目前,我一直在使用以下代码:

首先,我有矩阵和 row_index。我想避免使用循环,因为数据有很多列。我想知道是否有办法做到这一点。

0 投票
1 回答
301 浏览

r - R中的Cumsum用于向量

超过阈值时如何使用 cumsum 返回索引?

该函数将返回 3,因为累积和将大于 10,这提供了 e 索引 3 作为结果。

0 投票
3 回答
1264 浏览

python - Efficient 2d cumsum

Say I have an array like this

and I want to create, for each of the items in a, a "cumsum of the next 4 items". That is, my expected output is

i.e. a matrix that contains

Since the cumsum operation cannot be correctly done for the last 3 items, I expect a 0 there. I know how to do a single cumsum. In fact, the arrays are

stacked horizontally. However, I don't know how to do this in an efficient way. What would be the nice vectorized numpy way of doing this? I'm also open for scipy packages, as long as they dominate numpy in terms of efficiency or readability.

0 投票
1 回答
738 浏览

python - numpy的逆cumsum

A 是一个 ((d,e)) numpy 数组。我计算一个 ((d,e)) numpy 数组 B 在其中我计算条目 B[i,j] 如下

换句话说,B[i,j]是A[k,l]取所有索引k>i,l>j的总和;这与应用于两个轴的通常 cumsum 有点相反。我想知道是否有更优雅和更快的方法来做到这一点(例如使用 np.cumsum)?