IndexError:boolean index与维度1的索引数组不匹配; dimension是3但相应的boolean维度是10

时间:2017-10-10 22:01:19

标签: python numpy

我该如何解决此错误?

dhidden[hidden <= 0] = 0

给我错误:

IndexError: boolean index did not match indexed array along dimension 1; dimension is 3 but corresponding boolean dimension is 10

更多信息:

 print(type(hidden))
<class 'numpy.ndarray'>
 print(type(hidden))

<class 'numpy.ndarray'> 
print(dhidden.shape)
(5, 3)
 print(hidden.shape)
(5, 10)

hidden.dtype和dhidden.dtype是float64

我尝试了dhidden [hidden&lt; = 0.0] = 0.0并仍然得到相同的错误。

1 个答案:

答案 0 :(得分:0)

hidden的布尔评估返回的索引超出dhidden的范围。因此可能是表达式的结果返回索引4,9的情况,该索引超出dhidden的范围。 dhidden的尺寸可以大于隐藏的尺寸,但不是相反的尺寸。如果您只想要hidden的相关值,可以尝试以下操作:

dhidden[hidden[:, :3] <=0] = 0

Per @ Reti43的建议:重要的是要注意,这假设只有前三列与隐藏相关。