如何从我的Numpy数组中获取列名?

时间:2018-09-03 11:59:31

标签: python pandas numpy scikit-learn

我使用了here所示的基于L1的特征选择,以便从pandas DataFrame X中选择合适的列。

from sklearn.svm import LinearSVC
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectFromModel

iris = load_iris()
X, y = iris.data, iris.target

lsvc = LinearSVC(C=0.01, penalty="l1", dual=False).fit(X, y)
model = SelectFromModel(lsvc, prefit=True)
X_new = model.transform(X)

但是我不清楚如何获取列名。由于X_newnumpy数组,因此我尝试了以下方法:

X_new.dtype.names

但是它什么也不返回。那么,我如何才能真正了解已选择了哪些列?

1 个答案:

答案 0 :(得分:0)

将数据转换为csv文件后,您将需要使用pd.read_csv将该文件转换为数据框。

然后您可以使用columns属性访问列。

此外,您可以使用to_list属性将列作为列表获取。

或者,您可以使用艾哈迈德的方法:

import re

f = open('f.csv','r')

alllines = f.readlines()
columns = re.sub(' +',' ',alllines[0]) #delete extra space in one line
columns = columns.strip().split(',') #split using space

print(columns)

编辑:OP通过使用model.get_support而不是SelectFromModel.get_support来解决了这个问题