此代码在我的书中
rlr.get_support()
print(u'有效特征为:%s' % ','.join(data.columns[rlr.get_support()]))
我收到了错误
IndexError: boolean index did not match indexed array along dimension 0;dimension is 9 but corresponding boolean dimension is 8
the rlr.get_support() index is 8 and data.colunms is 9
这是因为我的python是python 3.5?
答案 0 :(得分:2)
不,这不是因为Python版本。这是因为data.columns[...]
需要一个相同大小的数组,用作掩码(掩码中的True
值将包含data.columns
中的该元素,False
值将跳过它。)
无法根据您提供的信息量提供更多详细信息。
答案 1 :(得分:1)
您可以使用以下代码:
r1.get_support(indices=True)
print(u'有效特征为:%s' % ','.join(data.columns[rlr.get_support()]))
我认为Indexerror的原因是numpy的版本。你可以查看文档。 [https://docs.scipy.org/doc/numpy-1.13.0/user/basics.indexing.html#index-arrays][1]
布尔数组的形状必须与要索引的数组的初始尺寸相同。