标签: mean

计算生成器的python中的平均值

我正在做一些统计工作,我有一个(大)随机数集合来计算平均值,我想使用生成器,因为我只需要计算均值,所以我不需要存储数字.

问题是numpy.mean如果你把它传给发电机就会中断.我可以写一个简单的函数来做我想要的,但我想知道是否有一个正确的,内置的方法来做到这一点?

如果我能说"sum(values)/ len(values)"会很好,但是len不适用于genetators,并且总和已经消耗的值.

这是一个例子:

import numpy 

def my_mean(values):
    n = 0
    Sum = 0.0
    try:
        while True:
            Sum += next(values)
            n += 1
    except StopIteration: pass
    return float(Sum)/n

X = [k for k in range(1,7)]
Y = (k for k in range(1,7))

print numpy.mean(X)
print my_mean(Y)
Run Code Online (Sandbox Code Playgroud)

这两个都给出相同,正确,答案,买my_mean不适用于列表,numpy.mean不适用于生成器.

我真的很喜欢使用发电机的想法,但这样的细节似乎破坏了事情.

python generator mean

13
推荐指数
3
解决办法
6810
查看次数

python中的调和平均值

Python(scipy.stats.hmean)中的Harmonic Mean函数要求输入为正数.

例如:

from scipy import stats
print stats.hmean([ -50.2 , 100.5 ])
Run Code Online (Sandbox Code Playgroud)

结果是:

ValueError: Harmonic mean only defined if all elements greater than zero
Run Code Online (Sandbox Code Playgroud)

我没有在数学上看到为什么会出现这种情况,除了罕见的情况,你最终将除以零.不是检查除以零,而是hmean()在输入任何正数时抛出错误,无论是否可以找到调和平均值.

我在数学中遗漏了什么吗?或者这真的是一个限制SciPy吗?

你如何找到一组数字的调和平均值,这些数字在python中可能是正数还是负数?

python math statistics mean scipy

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

haskell - 使用QuickCheck的平均浮点错误

我使用QuickCheck-2.5.1.1进行QA.我测试两个纯函数gold :: a -> Floatf :: a -> Float,其中a实例随心所欲.

gold是参考计算,f是我正在优化的变体.

到目前为止,我使用quickcheck的大多数测试都使用了类似的测试\a -> abs (gold a - f a) < 0.0001.

但是,我想收集统计数据并检查阈值,因为知道平均误差和标准偏差对指导我的设计很有用.

有没有办法使用QuickCheck来收集这样的统计数据?


具体例子

为了给出我正在寻找的那种东西的具体例子,假设我有以下两个函数来近似平方根:

-- Heron's method
heron :: Float -> Float
heron x = heron' 5 1
    where
      heron' n est
          | n > 0 = heron' (n-1) $ (est + (x/est)) / 2
          | otherwise = est

-- Fifth order Maclaurin series expansion
maclaurin :: Float …
Run Code Online (Sandbox Code Playgroud)

haskell qa mean quickcheck standard-deviation

13
推荐指数
1
解决办法
563
查看次数

使用列方法向pandas DataFrame添加一行

我有一个pandas DataFrame,包含一些随时间推移的传感器读数,如下所示:

       diode1  diode2  diode3  diode4
Time
0.530       7       0      10      16
1.218      17       7      14      19
1.895      13       8      16      17
2.570       8       2      16      17
3.240      14       8      17      19
3.910      13       6      17      18
4.594      13       5      16      19
5.265       9       0      12      16
5.948      12       3      16      17
6.632      10       2      15      17
Run Code Online (Sandbox Code Playgroud)

我编写了代码,用每列的方法添加另一行:

# List of the averages for the test. 
averages = [df[key].describe()['mean'] for key in df]
indexes = df.index.tolist()
indexes.append('mean')
df.reindex(indexes)
# Adding …
Run Code Online (Sandbox Code Playgroud)

python mean dataframe pandas

13
推荐指数
1
解决办法
9689
查看次数

查找pandas df中timedelta对象的均值和标准差

我想从下面显示的两列中计算一个meanstandard deviation一个timedelta银行dataframe.当我运行代码(也显示如下)时,我得到以下错误:

pandas.core.base.DataError: No numeric types to aggregate
Run Code Online (Sandbox Code Playgroud)

我的数据帧:

   bank                          diff
   Bank of Japan                 0 days 00:00:57.416000
   Reserve Bank of Australia     0 days 00:00:21.452000
   Reserve Bank of New Zealand  55 days 12:39:32.269000
   U.S. Federal Reserve          8 days 13:27:11.387000
Run Code Online (Sandbox Code Playgroud)

我的代码:

means = dropped.groupby('bank').mean()
std = dropped.groupby('bank').std()
Run Code Online (Sandbox Code Playgroud)

python datetime mean timedelta pandas

13
推荐指数
3
解决办法
6842
查看次数

Pandas数据框条件均值基于列名称

从数据帧的示例开始,最简单的解释是:

    TimeStamp   382.098     382.461     383.185     383.548
    10:28:00    0.012448    0.012362    0.0124485   0.012362
    10:30:00    0.0124135   0.0123965   0.0124135   0.012431
    10:32:00    0.0551035   0.0551725   0.055931    0.0563105
    10:34:00    0.055586    0.0557245   0.056655    0.0569485
    10:36:00    0.055586    0.055776    0.0568105   0.057362
Run Code Online (Sandbox Code Playgroud)

我希望我的输出是:

    TimeStamp   382         383
    10:28:00    0.012405    0.01240525
    10:30:00    0.012405    0.01242225
    10:32:00    0.05513     0.05612075
    10:34:00    0.05565525  0.05680175
    10:36:00    0.055681    0.05708625
Run Code Online (Sandbox Code Playgroud)

所以,我想查看列名值,如果它们与整数相同,我希望输出col具有每个时间索引值的平均值.

我的想法是使用df.round将列标题舍入为最接近的整数,然后使用.mean()以某种方式对轴= 0应用相同col标题的均值.但是,我在数据帧索引类型上使用round函数时出错.

编辑:基于答案,我用过

df.rename(columns=dict(zip(df.columns[0:], df.columns[0:]\
          .values.astype(float).round().astype(str))),inplace=True)
df = df.groupby(df.columns[0:], axis=1).mean()
Run Code Online (Sandbox Code Playgroud)

它会混淆列名和值,而不是根据col名称给出我的意思......不知道为什么!

python mean dataframe pandas

13
推荐指数
3
解决办法
505
查看次数

查找 DataFrame 错误中有害列的平均值

      id gender status dept  var1  var2  salary
0   P001      M     FT   DS   2.0   8.0     NaN
1   P002      F     PT   FS   3.0   NaN    54.0
2   P003      M    NaN  AWS   5.0   5.0    59.0
3   P004      F     FT  AWS   NaN   8.0   120.0
4   P005      M     PT   DS   7.0  11.0    58.0
5   P006      F     PT  NaN   1.0   NaN    75.0
6   P007      M     FT   FS   NaN   NaN     NaN
7   P008      F    NaN   FS  10.0   2.0   136.0
8   P009      M     PT  NaN  14.0   3.0    60.0
9 …
Run Code Online (Sandbox Code Playgroud)

python mean pandas

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

获得numpy中3D阵列的2D切片的平均值

我有一个numpy数组,形状为:

(11L, 5L, 5L)
Run Code Online (Sandbox Code Playgroud)

我想计算数组[0,:,],[1,:,]等的每个'切片'的25个元素的平均值,返回11个值.

这看起来很傻,但我无法弄清楚如何做到这一点.我认为这个mean(axis=x)函数可以做到这一点,但我已经尝试了所有可能的轴组合,但没有一个给我我想要的结果.

我显然可以使用for循环和切片来做到这一点,但肯定有更好的方法吗?

arrays numpy mean slice multidimensional-array

12
推荐指数
3
解决办法
9931
查看次数

计算列表<T>字段的平均值

例如:我有A的列表,我想在它的字段a上计算平均值.最好的方法是什么?我找到的愚蠢的解决方案是创建LAverage = new List(),用所有La填充它并调用LAverage.average()

class A
{
    int a;
    int b;
}
void f()
{
    var L = new List<A>();
    for (int i=0; i<3; i++)
    {
        L.Add(new A(){a = i});
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# iterator average mean

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

如何计算r中数据帧中每组的平均值/中值

我有一个数据框记录了一个客户花费了多少钱,如下所示:

custid, value
1,  1
1,  3
1,  2
1,  5
1,  4
1,  1
2,  1
2,  10
3,  1
3,  2
3,  5
Run Code Online (Sandbox Code Playgroud)

如何使用mean,max,median,std等计算特征,如下所示?使用一些应用功能?如何?

custid, mean, max,min,median,std
1,  ....
2,....
3,....
Run Code Online (Sandbox Code Playgroud)

r mean median

12
推荐指数
5
解决办法
7万
查看次数