2

我是 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' ?

4

1 回答 1

2

好的,我已经想通了。

创建 numpy 数组时,我没有指定 dtype。代码的第二行应该是:

knights = np.array([(42,'Lancelot'),(32,'Bedivere')], dt)
于 2013-08-11T20:34:11.493 回答