我有一个 3D (time, X, Y) numpy 数组,其中包含几年的 6 小时时间序列。(比如说5)。我想创建一个采样时间序列,其中包含从可用记录中随机抽取的每个日历日的 1 个实例(每天 5 种可能性),如下所示。
- 2006 年 1 月 1 日
- 2011 年 1 月 2 日
- 2009 年 1 月 3 日
- ...
这意味着我需要从 01/01/2006 中获取 4 个值,从 02/01/2011 中获取 4 个值,等等。我有一个工作版本,其工作方式如下:
- 重塑输入数组以添加“年份”维度(时间、年份、X、Y)
- 创建一个由 0 到 4 之间随机生成的整数组成的 365 值数组
- 使用 np.repeat 和整数数组仅提取相关值:
例子:
sampledValues = Variable[np.arange(numberOfDays * ValuesPerDays), sampledYears.repeat(ValuesPerDays),:,:]
这似乎可行,但我想知道这是否是解决我的问题的最佳/最快方法?速度很重要,因为我在循环中执行此操作,adn 将从测试尽可能多的案例中受益。
我这样做对吗?
谢谢
编辑 我忘了提到我过滤了输入数据集以删除闰年的 2 月 29 日。
基本上,该操作的目的是找到一个 365 天的样本,该样本在均值等方面与长期时间序列非常匹配。如果采样的时间序列通过了我的质量测试,我想将其导出并重新开始。