基于列名的子集结构数组
我有一个从CSV文件创建的结构化数组。
这个数组里有很多字段/列。我想要创建一个子集数组。
z=mydata[['z1','z2','z3']]
这样做可以实现,但有时候 z
只包含 z1-z2
或者 z1-z10
。
有没有简单的方法可以选出所有以 z 开头的列名,不管数据里有多少列?显然,得到的数组列数会不同,但这没关系。
1 个回答
1
虽然看起来不太好,但你可以这样做:
z = mydata[[x for x in a.dtype.names if 'z' in x]]
实际上,你是在遍历所有的列名,检查每个列名是否符合条件。如果有更好的方法,我会很感兴趣,因为我在使用pandas时也会用到 pd.DataFrame.columns
这个属性来做类似的操作。