标签: average

如何有效地计算平均值(移动平均值)?

我想出来了

n=1;
curAvg = 0;
loop{
  curAvg = curAvg + (newNum - curAvg)/n;
  n++;
}
Run Code Online (Sandbox Code Playgroud)

我认为这种方式的亮点是:
- 它避免了大数字(如果你总和然后除以可能溢出)
- 你保存一个寄存器(不需要存储总和)

问题可能在于求和误差 - 但我认为通常会有平衡的向上和向下舍入数,因此误差不会大大加总.

你看到这个解决方案有任何陷阱吗?你有更好的建议吗?

algorithm math average moving-average

40
推荐指数
2
解决办法
2万
查看次数

Mysql平均准时列?

SELECT avg(duration)as average FROM login;

持续时间的数据类型是"time",因此我的值如:00:00:14,00:20:23等

我执行它给我的查询:2725.78947368421

那是什么?我想要时间格式,可以mysql做平均时间??

mysql time average

35
推荐指数
1
解决办法
3万
查看次数

如何在php中找到数组的平均值?

例:

$a[] = '56';
$a[] = '66';
$a[] = '';
$a[] = '58';
$a[] = '85';
$a[] = '';
$a[] = '';
$a[] = '76';
$a[] = '';
$a[] = '57';
Run Code Online (Sandbox Code Playgroud)

实际上如何从这个数组中找出不包括空的平均值.请帮忙解决这个问题.

php arrays average

34
推荐指数
3
解决办法
5万
查看次数

AVG中的Sql - 浮点数问题

SELECT     AVG(variable) AS Expr1, SUM(variable) AS Expr2
FROM       ......
Run Code Online (Sandbox Code Playgroud)

AVG的结果是2,但事实并非如此,必须是2.95.有什么问题,有什么想法吗?

sql average

29
推荐指数
1
解决办法
2万
查看次数

在 x86 汇编中取两个有符号整数的平均值的最快方法?

假设我们有两个寄存器长度为 2有符号1 的整数,例如ab。我们想要计算值(a + b) / 2,向上舍入、向下舍入、向零舍入或远离零舍入,无论哪种方式更容易(即我们不关心舍入方向)。

\n

结果是另一个寄存器长度有符号整数(很明显,平均值必须在寄存器长度有符号整数的范围内)。

\n

执行此计算最快的方法是什么?

\n

您可以选择两个整数最初位于哪个寄存器中,以及平均值最终位于哪个寄存器中。

\n
\n

脚注1:对于无符号整数,我们可以用两条指令来完成。尽管循环进位在 Intel CPU 上超过 1 uop,但这可能是最快的方法。但当计数仅为 1 时,只有一对。 关于无符号均值的问答中的答案讨论了效率。

\n
add rdi, rsi\nrcr rdi, 1\n
Run Code Online (Sandbox Code Playgroud)\n

rdi这两个数字以和开始rsi,平均值以 结束rdi。但对于有符号数,-1 + 3将设置 CF,并将 a 旋转1到符号位。没有给出正确答案+1

\n

脚注 2:我指定了寄存器长度的有符号整数,这样我们就不能简单地用movsxdorcdqe指令对整数进行符号扩展。

\n
\n

我得到的最接近的解决方案使用四个指令,其中一个rcr在 Intel 上为 3 uops,在 AMD …

optimization x86 assembly average micro-optimization

29
推荐指数
2
解决办法
3016
查看次数

使用Python计算Spark中的Pairwise(K,V)RDD中每个KEY的平均值

我想与Python解决方案共享这个特定的Apache Spark,因为它的文档很差.

我想用KEY计算K/V对(存储在Pairwise RDD中)的平均值.以下是示例数据的样子:

>>> rdd1.take(10) # Show a small sample.
[(u'2013-10-09', 7.60117302052786),
(u'2013-10-10', 9.322709163346612),
(u'2013-10-10', 28.264462809917358),
(u'2013-10-07', 9.664429530201343),
(u'2013-10-07', 12.461538461538463),
(u'2013-10-09', 20.76923076923077),
(u'2013-10-08', 11.842105263157894),
(u'2013-10-13', 32.32514177693762),
(u'2013-10-13', 26.249999999999996),
(u'2013-10-13', 10.693069306930692)]
Run Code Online (Sandbox Code Playgroud)

现在,下面的代码序列不是最佳的方法,但它确实有效.在我找到更好的解决方案之前,我正在做的事情.这并不可怕但是 - 正如你在答案部分看到的那样 - 有一种更简洁,有效的方式.

>>> import operator
>>> countsByKey = sc.broadcast(rdd1.countByKey()) # SAMPLE OUTPUT of countsByKey.value: {u'2013-09-09': 215, u'2013-09-08': 69, ... snip ...}
>>> rdd1 = rdd1.reduceByKey(operator.add) # Calculate the numerators (i.e. the SUMs).
>>> rdd1 = rdd1.map(lambda x: (x[0], x[1]/countsByKey.value[x[0]])) # Divide each SUM by …
Run Code Online (Sandbox Code Playgroud)

python average aggregate apache-spark rdd

28
推荐指数
3
解决办法
3万
查看次数

SQL AVG返回一个int

在我的一个查询中,似乎该AVG函数返回一个int.

select ..., AVG(e.employee_level)avg_level
Run Code Online (Sandbox Code Playgroud)

如何让它返回浮点值?我尝试了它,但我的所有行avg_level仍然是整数.

sql floating-point casting average

26
推荐指数
1
解决办法
3万
查看次数

使用LIMIT从MySQL表中选择平均值

我试图获得最低5个价格项目的平均值,按附加的用户名分组.但是,下面的查询给出了每个用户的平均价格(当然这是价格),但我只想回复一个答案.

SELECT AVG(price) 
  FROM table 
 WHERE price > '0' && item_id = '$id' 
GROUP BY username 
ORDER BY price ASC 
   LIMIT 5
Run Code Online (Sandbox Code Playgroud)

mysql sql average

25
推荐指数
1
解决办法
2万
查看次数

试图获得计数结果集的平均值

我有以下SQL :( bitemp)

SELECT COUNT (*) AS Count
  FROM Table T
 WHERE (T.Update_time =
           (SELECT MAX (B.Update_time )
              FROM Table B
             WHERE (B.Id = T.Id))
GROUP BY T.Grouping
Run Code Online (Sandbox Code Playgroud)

现在我得到一个有很多数字的结果集.我想得到这份清单的平均值.目前,我将列表导入excel并使用其平均功能.但是DB2有一个AVG函数,但我没有让它工作.

SELECT AVG(COUNT(*))也试过了SELECT AVG(*) FROM (theQuery).

sql db2 average resultset count

25
推荐指数
1
解决办法
8万
查看次数

postgresql中的移动平均线

我的Postgresql 9.1数据库中有以下表格:

select * from ro;
date       |  shop_id | amount 
-----------+----------+--------
2013-02-07 |     1001 |      3
2013-01-31 |     1001 |      2
2013-01-24 |     1001 |      1
2013-01-17 |     1001 |      5
2013-02-10 |     1001 |     10
2013-02-03 |     1001 |      4
2012-12-27 |     1001 |      6
2012-12-20 |     1001 |      8
2012-12-13 |     1001 |      4
2012-12-06 |     1001 |      3
2012-10-29 |     1001 |      3
Run Code Online (Sandbox Code Playgroud)

我试图得到一个移动平均线,比较过去3个星期四的数据而不包括当前的星期四.这是我的查询:

select date, shop_id, amount, extract(dow from date),
avg(amount) OVER (PARTITION BY extract(dow …
Run Code Online (Sandbox Code Playgroud)

postgresql math average moving-average postgresql-9.1

23
推荐指数
2
解决办法
1万
查看次数