Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 时间序列的标准差_Python_Numpy_Matplotlib_Scipy - Fatal编程技术网

Python 时间序列的标准差

Python 时间序列的标准差,python,numpy,matplotlib,scipy,Python,Numpy,Matplotlib,Scipy,我想计算样本的平均值和标准偏差。示例有两列,第一列是时间,第二列是值,用空格分隔。我不知道如何使用python计算第二列数值的平均值和标准偏差,也许是scipy?我想对大型数据集使用该方法。 我还想检查一个集合的哪个数是标准差的七倍。 谢谢你的帮助 time value 1 1.17e-5 2 1.27e-5 3 1.35e-5 4 1.53e-5 5 1.77e-5 平均值为1.418e-5,标准偏差为2.369-6为了回答您的第一个问题,假设您的样本的数据帧为df,以下应能起作用

我想计算样本的平均值和标准偏差。示例有两列,第一列是时间,第二列是值,用空格分隔。我不知道如何使用python计算第二列数值的平均值和标准偏差,也许是scipy?我想对大型数据集使用该方法。 我还想检查一个集合的哪个数是标准差的七倍。 谢谢你的帮助

time value
 1 1.17e-5
 2 1.27e-5
 3 1.35e-5
 4 1.53e-5
 5 1.77e-5

平均值为
1.418e-5
,标准偏差为
2.369-6

为了回答您的第一个问题,假设您的样本的数据帧为
df
,以下应能起作用:

import pandas as pd

df = pd.DataFrame({'time':[1,2,3,4,5], 'value':[1.17e-5,1.27e-5,1.35e-5,1.53e-5,1.77e-5]}
df
将是这样的:

>>> df
   time     value
0     1  0.000012
1     2  0.000013
2     3  0.000013
3     4  0.000015
4     5  0.000018
然后,要分别获得
列的标准偏差和平均值,运行以下操作,您将获得输出:

>>> df['value'].std()
2.368966019173766e-06

>>> df['value'].mean()
1.418e-05
要回答第二个问题,请尝试以下方法:

std = df['value'].std()
df = df[(df.value > 7*std)]
>>> df
   time     value
4     5  0.000018
std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]
我假设您希望获得
大于样本标准偏差7倍的行。如果您想要大于或等于,只需将
更改为
>=
。然后,您应该能够获得以下信息:

std = df['value'].std()
df = df[(df.value > 7*std)]
>>> df
   time     value
4     5  0.000018
std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]
此外,按照@Mad Physicator的建议,添加δ自由度
ddof=0
(如果您不熟悉,请检查),这样做会导致以下结果:

std = df['value'].std()
df = df[(df.value > 7*std)]
>>> df
   time     value
4     5  0.000018
std = df['value'].std(ddof=0)
df = df[(df.value > 7*std)]
输出:

>>> df
   time     value
3     4  0.000015
4     5  0.000018

另外,如果我没有错的话,这里的惯例是一篇文章只回答一个问题,而不是两个问题。

我想你可能希望标准偏差中的ddof=0computation@MadPhysicist嗯,你说得有道理。我将在上面添加您的建议:)