【发布时间】:2022-11-05 02:52:49
【问题描述】:
我有数百个 .h5 文件,文件名中有日期(例如 ...20221017 ...)。对于每个文件,我都将一些参数提取到格式的 numpy 数组中
[[param_1a, param_2a...param_5a],
...
[param_1x, param_2x,...param_5x]]
代表感兴趣的数据。我想按月对数据进行分组,因此我没有(例如)一个月的 30 个数组,而是有 1 个数组,它代表 30 个数组的平均值。我怎样才能做到这一点?
这是我到目前为止的代码,文件名代表文件名的txt文件。
def combine_months(filename):
fin = open(filename, 'r')
next_name = fin.readline()
while (next_name != ""):
year = next_name[6:10]
month = next_name[11:13]
date = month+'\\'+year
#not sure where to go from here
fin.close()
我希望实现的一个例子是,array_1、array_2、array_3 是 numpy 数组,它们表示来自不同 h5 文件的数据,其文件名日期为同一月份。
array_1 = [[ 1 4 10]
[ 2 5 11]
[3 6 12]]
array_2 = [[ 1 2 5]
[ 2 2 3]
[ 3 6 12]]
array_3 = [[ 2 4 10]
[ 3 2 3]
[ 4 6 12]]
我希望结果看起来像:
2022_04_data = [[1,3,7.5]
[2, 2, 6.5]
[3,4,7.5]
[4,6,12]]
请注意,每行的第一个数字代表一个 ID,因此我还需要根据第一个数字将这些数据组合在一起。
【问题讨论】:
-
您是否使用
fin = open(filename, 'r')和fin.readline()来读取HDF5 文件?如果是这样,我不知道这将如何工作。您需要使用可以读取 HDF5 文件的包 - h5py 和 pytables -
我正在使用它来读取包含所有 hdf5 文件名称的文本文件
-
请澄清您的问题:您是否需要帮助 1)从 H5 文件中读取数据,或 2)基于公共行 ID 对提取的数组进行平均? (或两者?)
-
我知道如何从 h5 文件中读取数据,我的问题是因为我有数百个 h5 文件,我想根据文件名中的日期组合如上所示的数据。
标签: python numpy glob h5py hdf