Вам просто нужно иметь правильное измерение. Тот, который вы делите, должен быть вектором столбца, для этого мы используем .rehshape(-1,1)
.
a = np.array([[2,3], [5,6]])
print(a)
b = np.array([2, 4]).reshape(-1,1)
print(b)
print(a/b)
Вывод
[[2 3]
[5 6]]
[[2]
[4]]
[[1. 1.5 ]
[1.25 1.5 ]]
Таким образом, ваш код будет -
Y1 = [1,0,1,0]
Y2 = [0,0,1,0]
cm = metrics.confusion_matrix(Y1,Y2)
cm_sum = np.sum(cm, axis=1).reshape(-1,1)
cm_perc = cm / cm_sum
Вы также можете использовать аргумент keepdims
в np.sum
, который в основном сохранит размеры, и в этом случае на выходе будет вектор-столбец. Так что -
cm_sum = np.sum(cm, axis=1, keepdims=True)
тоже будет работать