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

2 投票
1 回答
1809 浏览
提问于 2025-04-16 17:51

我有一个数据集,里面有300多列,存储在pytables中。我想能够轻松选择不同的子集。看起来没有一个很优雅的解决办法,或者我是不是漏掉了什么?

我也希望能有一种方法,创建一个新的表格,简单地引用原始表格中的某些列,这样我就可以有一个主表和一些子表。有没有办法做到这一点?

1 个回答

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]))

撰写回答