Вы можете легко реализовать такую двоичную таблицу, используя ... ну, таблицу.Это выглядело бы так:
metric_table = [[0, reviewcost],
[fa, reviewcost]]
metric_value = metric_table[yt][yp] # for a given yt, yp
Я взял на себя смелость здесь, чтобы исправить то, что кажется ошибкой в вашем коде, так как вы заархивировали четыре итерации и получили только три значения.Я предполагаю, что вы хотите элемент от reviewcost
, а не все.Исправьте это, если это не правильно.Кроме того, я не вижу необходимости создавать временный массив, просто чтобы суммировать все это, поэтому я свернул его до суммирования генератора:
def fraudmetric(ytrue, ypred, fraudulentamt, reviewcost):
return sum([[ 0, rc],
[fa, rc]][yt][yp]
for yt, yp, fa, rc in zip(ytrue, ypred, fraudulentamt, reviewcost))