[Scipy-tickets] [SciPy] #1430: scipy.spatial.distance.canberra not correctly implemented
SciPy Trac
scipy-tickets@scipy....
Fri Apr 29 02:37:11 CDT 2011
#1430: scipy.spatial.distance.canberra not correctly implemented
---------------------+------------------------------------------------------
Reporter: k00aher | Owner: somebody
Type: defect | Status: new
Priority: normal | Milestone:
Component: Other | Version: 0.9.0
Keywords: |
---------------------+------------------------------------------------------
In the docstrings in distance.py two different formulas for the canberra
distance are given. One in the cdist and pdist docstrings, which is
correct, and one in the canberra function docstring which is wrong. The
implementation is unfortunately wrong. A simple example is
canberra([1.0,0.0,1.0,0.0],[1.0,1.0,0.0,0.0]) which should result in 2.0
but results in 0.5. This example also highlights the problem in the
canberra method with division by zero for empty columns ie last column
gives 0/0 which here should equate to 0 and not NaN.
a correct implementation is
return np.nansum(abs(u-v)/(abs(u)+abs(v)))
--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1430>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
More information about the Scipy-tickets
mailing list