boolean index与维度上的索引数组不匹配

时间:2017-10-16 12:10:22

标签: python python-3.x

此代码在我的书中

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?

2 个答案:

答案 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]

布尔数组的形状必须与要索引的数组的初始尺寸相同。