Python IndexError:一维数组被二维索引的原因及解决方法
错误原因及解决方法
错误原因
BestOption是形状为(18978, 1)的二维数组,执行BestOption==1后得到的是同样形状的二维布尔数组。而Choices是一维数组,无法接受二维数组作为索引,因此触发IndexError。
最优解决方法
三种简洁可行的处理方式,任选其一即可:
用
squeeze()降维:移除BestOption的多余维度,转为一维数组后再做判断Choices[(BestOption == 1).squeeze()]或直接对
BestOption降维:Choices[BestOption.squeeze() == 1]直接取第一列:访问
BestOption的唯一列,得到一维数组Choices[BestOption[:, 0] == 1]用
flatten()扁平化数组:将二维数组直接转为一维Choices[BestOption.flatten() == 1]
内容的提问来源于stack exchange,提问作者SeanC
相关产品推荐
相关产品推荐

