首页 > 解决方案 > HDF5 dfs 到 Numpy 数组 - 无法执行 numpy 操作

问题描述

我从 Pandas 商店加载了一个 HDF5 文件,并使用以下代码将它们全部输入为 np.float64:

dtypes = np.dtype([('methane_emission', np.float64), 
                   ('no2_emission', np.float64), ('co2_emission', np.float64)])

for i in range(len(ccodes)):
    ccode = ccodes[i]
    df = store.get(ccode)
    df = df.drop(columns='year')
    dset = f1.create_dataset(ccode, data=df.astype(dtypes))

然后以下代码向我抛出以下错误。

f1 = h5py.File('file.h5', 'r')
a = np.array(f1['xxx']).flatten()
a.astype(np.float64).sum(axis=0)

无法根据 dtype([('methane_emission', '<f8'), ('no2_emission', '<f8'), ('co2_emission', '<f8')]) 将数组数据转换为 dtype('float64')遵守“不安全”规则

标签: pythonnumpyhdf5h5pypytables

解决方案


推荐阅读