Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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 xarray:根据每月重新采样的平均值计算每日异常(不是气候学)_Python_Python Xarray_Xarray - Fatal编程技术网

Python xarray:根据每月重新采样的平均值计算每日异常(不是气候学)

Python xarray:根据每月重新采样的平均值计算每日异常(不是气候学),python,python-xarray,xarray,Python,Python Xarray,Xarray,xarray's解释了如何计算每月气候异常。在这里,我尝试做一些稍微不同的事情:根据每日时间序列,我想计算本月平均值的每日异常值() 我用groupby和手工制作的月票(代码如下)成功地做到了这一点。有没有一种更好的、更简单的方法来获得同样的结果 import xarray as xr import numpy as np import pandas as pd # Create a data array t = pd.date_range('2001', '2003', freq='D')

xarray's解释了如何计算每月气候异常。在这里,我尝试做一些稍微不同的事情:根据每日时间序列,我想计算本月平均值的每日异常值(

我用groupby和手工制作的月票(代码如下)成功地做到了这一点。有没有一种更好的、更简单的方法来获得同样的结果

import xarray as xr
import numpy as np
import pandas as pd

# Create a data array
t = pd.date_range('2001', '2003', freq='D')
da = xr.DataArray(np.arange(len(t)), coords={'time':t}, dims='time')

# Monthly time stamp for groupby
da.coords['stamp'] = ('time', [str(y) + '-' + str(m) for (y, m) in 
                               zip(da['time.year'].values, 
                                   da['time.month'].values)])

# Anomaly
da_ano = da.groupby('stamp') - da.groupby('stamp').mean()

da_ano.plot();

您可以将平均数的月度时间序列显式转换为每日时间序列。例如:

monthly = da.resample(time='1MS').mean()
upsampled_monthly = monthly.resample(time='1D').ffill()
anomalies = da - upsampled_monthly