尺寸的隐式处理?

时间:2017-02-28 23:07:25

标签: python numpy dimension

我有以下函数来做平均百分比误差:

def mape(ys,yhat):
    if yhat.ndim == 1 :
        return np.sum(np.abs(ys - yhat)) / float(np.sum(ys))
    else :
        return np.sum(np.abs(ys - yhat), axis=1) / float(np.sum(ys))

我必须明确检查第二个操作数的维数。 有没有办法让numpy在内部处理这个或者如果我可以用不同的方式调用函数,所以我不需要明确地检查dims。

1 个答案:

答案 0 :(得分:2)

负轴编号从最后一个轴开始计数,因此要沿最后一个轴无条件求和,您可以指定axis=-1

return np.sum(np.abs(ys - yhat), axis=-1) / float(np.sum(ys))