有没有一种方法可以使用某种形式的时间索引(datetime等)来索引三维数组在三维空间?
我的问题是,我正在对数千个雷达图像进行时间序列分析,例如,我需要获得每月的平均值。然而,如果我简单地在第三维中平均每31个数组,那么由于较短的月份和缺少数据等原因,它会变得不准确。
发布于 2016-08-31 20:46:46
您可以使用pandas模块。它支持按日期/日期时间范围进行索引。它还支持多索引,这允许您以2D方式处理多维数据。
>>> rng = pd.date_range('1/1/2016', periods=100, freq='D')
>>> rng[:5]
DatetimeIndex(['2016-01-01', '2016-01-02', '2016-01-03', '2016-01-04', '2016-01-05'], dtype='datetime64[ns]', freq='D')
>>> ts = pd.Series(np.random.randn(len(rng)), index=rng)
>>> ts.head()
2016-01-01 0.119762
2016-01-02 -0.010990
2016-01-03 0.226537
2016-01-04 -0.087559
2016-01-05 0.484426
Freq: D, dtype: float64
>>> ts.resample('M').mean()
2016-01-31 -0.171578
2016-02-29 0.055878
2016-03-31 -0.243225
2016-04-30 -0.015087
Freq: M, dtype: float64请查看以下详细信息:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DatetimeIndex.html http://pandas.pydata.org/pandas-docs/stable/timeseries.html http://pandas.pydata.org/pandas-docs/stable/advanced.html
发布于 2016-10-28 16:35:54
发布我使用的psuedo解决方案:
这里的问题是缺乏3d阵列数据的日期-时间索引(即satillite,雷达)。虽然pandas中有时间序列函数,但没有数组(据我所知)。
这个解决方案是可行的,因为我使用的数据文件的名称中有日期-时间,例如'200401010000‘是'yyyymmddhhMM’。
使用这个,你可以重新采样df,例如1天,取'inx‘的最小值和最大值。这为您的数组函数提供了开始-结束位置。
您还可以在错误的日期时间插入nan数组(即'inx‘min max = nan),以便您的3d数组与实际日期时间的长度相匹配。
如果你有Q或者你知道这个问题的更好的解决方案/包,请发表评论。
https://stackoverflow.com/questions/39249639
复制相似问题