gpt4 book ai didi

python - 将多个数据文件组合成np.arrays,存储在字典中

转载 作者:行者123 更新时间:2023-12-02 05:56:59 25 4
gpt4 key购买 nike

我正在尝试加载大型数据集。我有约 8000 天的文件,每个文件都有数百个测量值的数组。我可以将一天的文件加载到一组 numpy 数组中,并将其存储在字典中。为了加载所有当天的文件,我用所需的键初始化了一个字典。然后我循环遍历文件列表,加载一个,并尝试将它们存储在更大的字典中。

    all_measurements = np.asarray([get_n_measurements(directory, name) for name in files])

error_files = []

temp = np.full(all_measurements.sum()
all_data = {key: temp.copy(),
fill_value, dtype=np.float64) for key in sample_file}

start_index = 0
for data_file, n_measurements in zip(file_list, all_measurements):

file_data = one_file(data_file) # Load one data file into a dict.

for key, value in file_data.iteritems(): # I've tried .items(), .viewitems() as well.

try:

all_data[key][start_index : start_index + n_measurements] = file_data[key]

except ValueError, msg:

error_files.append((data_file, msg))

finally:

start_index += n_measurements

我检查了 one_file() 的结果,我知道它正确加载了数据。但是,组合后的 all_data 的行为就好像 key:value 对中的每个值都是相同的。

这是数据结构的示例:

all_data  = {'a': array([ 0.76290858,  0.83449302,  ...,  0.06186873]), 
'b': array([ 0.32939997, 0.00111448, ..., 0.72303435])}

file_data = {'a': array([ 0.00915347, 0.39020354]),
'b': array([ 0.8992421 , 0.18964702])}

for 循环的每次迭代中,我尝试将 file_data 插入 all_data 的索引 [start_index : start_index + n_measurements]

最佳答案

如果我很好地解释了您的代码,并且在 n_measurement 用于提供总测量次数的情况下,您宁愿执行以下操作:

all_measurements = np.array(
[len(n_measurements)
for n_measurements in file_list]
)

或者如何将 all_measurements.sum() 作为新的可初始化 np.array 的形状?

关于python - 将多个数据文件组合成np.arrays,存储在字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31753195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com