我想将此代码编写为pythonic。我的实际数组比此示例大得多。
(5 + 10 + 20 + 3 + 2)/ 5
print(np.mean(array,key = lambda x:x [1]))TypeError:mean()得到了意外的关键字参数'key'
array = [('a', 5) , ('b', 10), ('c', 20), ('d', 3), ('e', 2)]
sum = 0
for i in range(len(array)):
sum = sum + array[i][1]
average = sum / len(array)
print(average)
import numpy as np
print(np.mean(array,key=lambda x:x[1]))
Run Code Online (Sandbox Code Playgroud)
如何避免这种情况?我想用第二个例子。
我正在使用Python 3.7
我有一系列日期和每个日期的测量.我想计算每个日期的指数移动平均线.有人知道怎么做这个吗?
我是python的新手.看起来平均值并没有内置到标准的python库中,这让我觉得有些奇怪.也许我不是在寻找合适的地方.
因此,给定以下代码,我如何计算日历日期IQ点的移动加权平均值?
from datetime import date
days = [date(2008,1,1), date(2008,1,2), date(2008,1,7)]
IQ = [110, 105, 90]
Run Code Online (Sandbox Code Playgroud)
(可能有更好的方法来构建数据,任何建议都将受到赞赏)
我正在编写报告,我希望得到年龄列的平均值.问题是并非所有行都有年龄.
如果列的值是0 2 4我想要3返回,而不是2.我不能简单地用WHERE排除零行,因为我正在使用这些行中的其他列.是否存在AvgIfNotZero类型的功能?
我想知道我是否可以在一个SQL SERVER请求中获得总和的平均值,
尝试使用以下请求执行此操作但它不起作用:
SELECT t.client,
AVG(SUM(t.asset)) AS Expr1
FROM TABLE t
GROUP BY t.client
Run Code Online (Sandbox Code Playgroud) 我需要生成具有以下属性的随机数.
最小应该是200
Max应该是20000
平均值(平均值)是500.
可选:第75百分位为5000
绝对不是均匀分布,也不是高斯分布.我需要给出一些左偏斜.
我有一个像这样的Python列表,
arr = [110, 60, 30, 10, 5]
Run Code Online (Sandbox Code Playgroud)
我需要做的实际上是找到每个数字与所有其他数字的差异,然后找到所有这些差异的平均值。
因此,对于这种情况,它将首先找到 之间的差异110,然后找到所有剩余元素 ie 之间的差异,然后它将找到与剩余元素 ie等之间60, 30, 10, 5的差异。6030, 10, 5
之后,它将计算所有这些差异的平均值。
现在,这可以通过两个 For 循环轻松完成,但O(n^2)时间复杂度较高,而且代码也有点“混乱”。我想知道是否有更快、更有效的方法来做同样的事情?
.NET Framework 3.5.
我试图计算一些相当大的数字的平均值.
例如:
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var items = new long[]
{
long.MaxValue - 100,
long.MaxValue - 200,
long.MaxValue - 300
};
try
{
var avg = items.Average();
Console.WriteLine(avg);
}
catch (OverflowException ex)
{
Console.WriteLine("can't calculate that!");
}
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
显然,数学结果是9223372036854775607(long.MaxValue - 200),但我在那里得到了例外.这是因为.NET Reflector检查的平均扩展方法的实现(在我的机器上)是:
public static double Average(this IEnumerable<long> source)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
long num = 0L;
long num2 = …Run Code Online (Sandbox Code Playgroud) 有谁知道如何设置平均值的默认值?我有这样一条线......
dbPlugins = (from p in dbPlugins
select new { Plugin = p, AvgScore = p.DbVersions.Average(x => x.DbRatings.Average(y => y.Score)) })
.OrderByDescending(x => x.AvgScore)
.Select(x => x.Plugin).ToList();
Run Code Online (Sandbox Code Playgroud)
由于我还没有收视率,因此会引发错误.如果我没有,我希望平均值默认为0.我认为这应该是一个扩展方法,我可以指定默认值应该是什么.
我无法想象我是第一个有这个问题的人,但我还没有找到解决方案(这里或其他地方).
我有几列,我想在R中平均.唯一最简单的方面是一些列包含NA.
例如:
Trait Col1 Col2 Col3
DF 23 NA 23
DG 2 2 2
DH NA 9 9
Run Code Online (Sandbox Code Playgroud)
我想创建一个Col4,它平均前3列中的条目,忽略了NA.所以:
Trait Col1 Col2 Col3 Col4
DF 23 NA 23 23
DG 2 2 2 2
DH NA 9 9 9
Run Code Online (Sandbox Code Playgroud)
理想情况下这样的事情会起作用:
data$Col4 <- mean(data$Chr1, data$Chr2, data$Chr3, na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
谢谢你的回复.是的,我一直在寻找加权平均值.
rate = [14.424, 14.421, 14.417, 14.413, 14.41]
amount = [3058.0, 8826.0, 56705.0, 30657.0, 12984.0]
Run Code Online (Sandbox Code Playgroud)
我想要根据底部列表的每个项目的顶部列表的加权平均值.
因此,如果第一个底部列表项较小(例如3,058与总数112,230相比),那么第一个顶部列表项应该对顶级列表平均值的影响较小.
这是我尝试过的一些内容.它给了我一个看起来正确的答案,但我不确定它是否符合我的要求.
for g in range(len(rate)):
rate[g] = rate[g] * (amount[g] / sum(amount))
rate = sum(rate)
Run Code Online (Sandbox Code Playgroud)
编辑:在与我的代码比较其他回复后,我决定使用邮政编码,以尽可能缩短.