使用pytables选择列子集的最优雅方法是什么?

时间:2011-05-17 23:16:59

标签: python hdf5 pytables

我在pytables中有一个包含300多列的数据集,我希望能够轻松选择不同的子集。似乎没有一个非常优雅的解决方案,或者有什么我想念的?

我也很高兴有一种方法来创建另一个表,它简单地对原始表中的选择列进行别名,这样我就可以拥有我的主表,然后是我的子集teables。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:6)

这样的事情会起作用吗?

from numpy import array, dtype
from h5py import File
from operator import itemgetter

# Dummy data

d = dtype([('a', int),('b', int),('c', int)])
a = array([(1, 6, 4), (5, 7, 1), (9, 7, 8), (3, 1, 2), (2, 1, 6)],dtype=d)

hdf = File('tmp.hdf','a')
hdf.create_dataset('data',data=a)
hdf.flush()

# Extract data

dat = hdf.get('data',default=0)

sub = ['a','c']
get = itemgetter(*sub)

print get(dat)

给出,

(array([1, 5, 9, 3, 2]), array([4, 1, 8, 2, 6]))