当另一个数组等于 1 时获取 numpy 数组的总和
get sum of numpy array when another array equals 1
我正在尝试创建自定义评分函数,但我在最后一行遇到问题。
def scorer(y_true, y_pred):
y_pred1 = shift(y_pred,1)
y_pred2 = shift(y_pred,2)
target = y_pred - y_true
action = np.where(target > 0, 1, 0)
diff = y_pred2 - y_pred1
score = (action == 1).sum(diff)
当该行的操作等于 1 时,我的输出应该是差异行的总和。
Diff
Action
1.28
1
2.56
0
.64
1
.32
0
5.12
0
例如,在本例中为 1.28+.64=1.92
您可以将 diff 直接放入 np.where
:
action = np.where(target > 0, y_pred2 - y_pred1, 0)
然后求和action
,通过
sum(action)
我正在尝试创建自定义评分函数,但我在最后一行遇到问题。
def scorer(y_true, y_pred):
y_pred1 = shift(y_pred,1)
y_pred2 = shift(y_pred,2)
target = y_pred - y_true
action = np.where(target > 0, 1, 0)
diff = y_pred2 - y_pred1
score = (action == 1).sum(diff)
当该行的操作等于 1 时,我的输出应该是差异行的总和。
Diff | Action |
---|---|
1.28 | 1 |
2.56 | 0 |
.64 | 1 |
.32 | 0 |
5.12 | 0 |
例如,在本例中为 1.28+.64=1.92
您可以将 diff 直接放入 np.where
:
action = np.where(target > 0, y_pred2 - y_pred1, 0)
然后求和action
,通过
sum(action)