IndexError:布尔索引与维度1上的索引数组不匹配;维是2,但相应的布尔维是1

时间:2019-03-08 20:14:14

标签: index-error

我有以下数组:

X = np.array([[68.  , 21.5],[71.  , 23.5],[ 73.  , 22.5 ],[ 64.  , 18.  ],[ 68.  , 23.5],
   [   65, 20.  ]])

T=np.array(['Female','Male','Male','Female','Female','Male'])

Y=np.array([[9],[8],[9],[9],[8],[8]], dtype='uint8')

我正在尝试使用如下的lambda函数查找统计信息:

Stats1=lambda X,T:[[np.mean(x),np.std(x,ddof=1),len(x)] for x in [X[T=='Female'],[X[T=='Male']]]]
Stats2=lambda X,Y:[[np.mean(x),np.std(x,ddof=1),len(x)] for x in [X[Y==9],[X[Y==8]]]]

Stats1正常工作:

[[muF,sigmaF,NF],[muM,sigmaM,NM]]=Stats1(X,T)

但是Stats2给出了错误:

[[muP,sigmaP,NP],[muN,sigmaN,NN]]=Stats2(X,Y)

    ---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-20-3678a0bdbb43> in <module>()
----> 1 [[muP,sigmaP,NP],[muN,sigmaN,NN]]=Stats2(X,Y)

<ipython-input-18-940d7bad1eef> in <lambda>(X, Y)
----> 1 Stats2=lambda X,Y:[[np.mean(x),np.std(x,ddof=1),len(x)] for x in [X[Y==9],[X[Y==8]]]]

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

任何人都可以帮助我了解为什么以及如何修复它。

0 个答案:

没有答案