我是numpy和hdf5的新手,我正试图跟随Anthony Scopatz的'HDF5是爱好者'教程。
我正在将一个numpy数组传递给hdf5表但是当我从hdf5中读取值时,它似乎编码不同:这是代码:
dt = np.dtype([('id',int),('name','S10')])
knights = np.array([(42,'Lancelot'),(32,'Bedivere')])
f.createTable('/','knights',dt)
f.root.knights.append(knights)
f.root.knights[0]
输出:
(12852, '\x00\x00\x00Lancelot')
这里发生了什么?为什么我没有得到原始输入,即'42','Lancelot'?
答案 0 :(得分:2)
好的,我已经弄清楚了。
创建numpy数组时我没有指定dtype。代码的第二行应该是:
knights = np.array([(42,'Lancelot'),(32,'Bedivere')], dt)