我有一个从CSV文件创建的结构化数组。
我有很多字段/列。我想创建一个子集数组。
z=mydata[['z1','z2','z3']]
可以解决问题,但有时z
仅来自z1-z2
或z1-z10
。
是否有一种简单的方法可以对列名称以z开头的所有列进行子集,而不管数据中有多少列?显然,结果数组的列数不同,但这很好。
答案 0 :(得分:1)
不是很漂亮,但您可以执行以下操作:
z = mydata[[x for x in a.dtype.names if 'z' in x]]
有效地遍历所有列名称并检查列名称是否与条件匹配。如果有更好的方式我会非常感兴趣,因为我使用pd.DataFrame.columns
属性在pandas中进行类似的操作。