[更新:问题已解决。解决方案见结尾]
我正在尝试对 h5py 数据集进行切片,但仅在此处出现错误
In[76]: dataset['traindata']
Out[76]: <HDF5 dataset "traindata": shape (100, 50), type "<f4">
In[76]: dataset['traindata'][0, 0:10]
---------------------------------------------------------------------------
SystemError Traceback (most recent call last)
<ipython-input-77-4033a3d41a81> in <module>()
----> 1 dataset['traindata'][0, 0:10]
E:\Anaconda\lib\site-packages\h5py\_hl\dataset.pyc in __getitem__(self, args)
437 mspace = h5s.create_simple(mshape)
438 fspace = selection._id
--> 439 self.id.read(mspace, fspace, arr, mtype)
440
441 # Patch up the output for NumPy
SystemError: error return without exception set
但是当我在同一组中切片另一个数据集时,它似乎工作正常
In[74]: dataset['trainlabel']
Out[74]: <HDF5 dataset "trainlabel": shape (1, 50), type "<i4">
In[75]: dataset['trainlabel'][0, 0:10]
Out[75]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
我不太明白有什么问题dataset['trainlabel']
。
有没有人遇到过这个?谢谢。
PSdataset
是从 v7.3 .mat 文件中读取的。“traindata”最初是一个单精度矩阵,“trainlabel”是 .mat 文件中的 int32 向量。
[解决方案:]通过http://www.lfd.uci.edu/~gohlke/pythonlibs/#h5py提供的预构建版本覆盖现有的 h5py 库(随 Anaconda 提供)。