Python sklearn:如何从原始数据帧中获取model.transform删除的列索引

Python sklearn:如何从原始数据帧中获取model.transform删除的列索引,python,python-2.7,machine-learning,scikit-learn,dataframe,Python,Python 2.7,Machine Learning,Scikit Learn,Dataframe,我正在尝试应用未来的选择。问题是使用整个数据帧会导致内存错误。因此,我决定剪切数据帧,以便能够应用“使用下一个未来选择”: # this is original dataframes X_full = df_train[df_train.columns[0:size]] # 76000(rows)*300(cols) y_full = df_train[[len(df_train.columns)-1]] # 76000(rows)*1(col) y_full包含0和1,数字1小于5%。所有其

我正在尝试应用未来的选择。问题是使用整个数据帧会导致内存错误。因此,我决定剪切数据帧,以便能够应用“使用下一个未来选择”:

# this is original dataframes
X_full = df_train[df_train.columns[0:size]] # 76000(rows)*300(cols)
y_full = df_train[[len(df_train.columns)-1]] # 76000(rows)*1(col)
y_full
包含0和1,数字1小于5%。所有其他列只包含数字,但我们不知道它们的意思

#this is way, I reduce the number of rows to 10%
test_frac = 0.10
count = len(X_full)
X = X_full.iloc[-int(count*test_frac):]
y = y_full.iloc[-int(count*test_frac):]

#Then I use Linear models penalized with the L1 norm to reduce the dimensionality of the data
lsvc = LinearSVC(C=0.01, penalty="l1", dual=False).fit(X, y)
model = SelectFromModel(lsvc, prefit=True)
X_new = model.transform(X)
print "X_new.shape", X_new.shape
print X_new

问题是,我需要获取已删除的列的列表,以便从原始数据帧中删除它们。我该怎么做呢?

听起来像是你在找的。根据文档,它可以返回(1)长度等于所有特征数的布尔数组(2)包含特征的整数索引:

从特征向量中选择保留特征的索引。如果索引为False,则这是一个形状[#输入特征]的布尔数组,其中一个元素为True,前提是其对应特征被选择保留。如果Indexs为True,则这是形状[#输出特征]的整数数组,其值是输入特征向量的索引


你能告诉我们更多关于数据集的信息吗?