Scipy cdist()将参数传递给metric

时间:2017-12-02 12:56:17

标签: scipy

有没有办法使用cdist()将其他参数传递给我的自定义指标?我尝试添加一个额外的关键字,但我收到一个错误:

def distanceMetric(x, y, radius=1):
    return x - y + radius

def test(xs, ys, radius=1):
    return cdist(xs, ys, metric=distanceMetric, radius=radius)

当我跑步时:

test([[1],[2],[3]], [[5],[6],[7]])

我收到一条错误消息:

TypeError: cdist() got an unexpected keyword argument 'radius'

1 个答案:

答案 0 :(得分:0)

在SciPy 1.0.0中添加了cdist中{8}}中关键字参数的处理。如果您无法升级,可以将cdist功能中test的来电修改为以下内容:

def test(xs, ys, radius=1):
    return cdist(xs, ys, metric=lambda x, y, radius=radius: distanceMetric(x, y, radius))