Python HDF5/NumPy打印阵列

Python HDF5/NumPy打印阵列,python,numpy,hdf5,Python,Numpy,Hdf5,我是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.a

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

好的,我已经找到了

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

knights = np.array([(42,'Lancelot'),(32,'Bedivere')], dt)