基于列名的子集结构化数组

时间:2014-05-09 18:11:04

标签: python arrays python-2.7 numpy subset

我有一个从CSV文件创建的结构化数组。

我有很多字段/列。我想创建一个子集数组。

z=mydata[['z1','z2','z3']]可以解决问题,但有时z仅来自z1-z2z1-z10

是否有一种简单的方法可以对列名称以z开头的所有列进行子集,而不管数据中有多少列?显然,结果数组的列数不同,但这很好。

1 个答案:

答案 0 :(得分:1)

不是很漂亮,但您可以执行以下操作:

z = mydata[[x for x in a.dtype.names if 'z' in x]]

有效地遍历所有列名称并检查列名称是否与条件匹配。如果有更好的方式我会非常感兴趣,因为我使用pd.DataFrame.columns属性在pandas中进行类似的操作。