2017-12-02 4 views
0

cdist()を使用してカスタムメトリックに追加の引数を渡す方法はありますか?私は余分なキーワードを追加してみましたが、私はエラーを取得: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]]) 

私はというエラーメッセージが出ます:

​​
+0

[、最小限の完全かつ検証可能な例]を含めてください(https://stackoverflow.com/help/mcve)を発行します。それがなければ、あなたのコードについてあまりにも多くのことを推測する必要があります。 –

+0

例をありがとう。そのコードはSciPy 1.0.0を使用して私のために働く。 SciPyのどのバージョンを使用していますか?あなたは 'import scipy;を使ってバージョンを見つけることができます。 print(scipy .__ version __) ' –

+0

私は0.19.1を使用しています。このバージョンにはkwargsオプションはありません:https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.spatial.distance.cdist.html#scipy.spatial.distance。 cdist –

答えて

0

キーワードの取り扱いをSciPy 1.0.0にcdistの引数が追加されました。アップグレードできない場合は、このような何かにあなたのtest機能にcdistの呼び出しを変更することができます。

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