【发布时间】:2021-11-20 01:38:06
【问题描述】:
我正在尝试使用使用每小时网格天气数据的 ConvLSTM2d 模型。我可以将数据放入具有这些维度(num_hours、lat、lon、num_features)的 4d 数组中。 ConvLSTM2d 需要 5d,我计划为序列长度设置一个可能为 24 小时的变量。我的问题是如何在这个数组中创建一个额外的维度来获得序列长度维度?(num_hours,sequence_length,lat,lon,num_features)具有纬度、经度、时间、特征类型和值列的数据框?
* 我意识到在提出问题时拥有示例数据集总是更容易,因此我创建了一个集合来模拟问题。
import pandas as pd
import numpy as np
weather_variables = ['windspeed', 'temp','pressure']
lats = [x/10 for x in range(400,500,5)]
lons = [x/10 for x in range(900,1000,5)]
hours = pd.date_range('1/1/2021', '9/28/2021', freq= 'H')
df = []
for i in range (0, len(hours)):
for weather in weather_variables:
temp_df = pd.DataFrame(index = lats, columns = lons,data = np.random.randint(0,100,size=(len(lats), len(lons))))
temp_df = temp_df.unstack().to_frame()
temp_df.reset_index(inplace= True)
temp_df['weather_variable'] = weather
temp_df['ts'] = hours[i]
df.append(temp_df)
df = pd.concat(df)
df.columns = ['lon','lat','value','weather_variable', 'ts']
因此,此代码将创建一个虚拟数据集,其中包含给定小时的 3 个网格。目标是将其转换为重叠的 24 小时序列的 5d 数组。我认为数组看起来像这样 (len(hours)?, 24, 20, 20, 3)
【问题讨论】:
标签: python numpy keras tensorflow2.0