diff --git a/pyclustering/utils/metric.py b/pyclustering/utils/metric.py index 52277cdf..21f9101b 100755 --- a/pyclustering/utils/metric.py +++ b/pyclustering/utils/metric.py @@ -328,6 +328,7 @@ def euclidean_distance_numpy(object1, object2): @return (double) Euclidean distance between two objects. """ + object2 = numpy.array(object2) if len(object1.shape) > 1 or len(object2.shape) > 1: return numpy.sqrt(numpy.sum(numpy.square(object1 - object2), axis=1)) else: @@ -367,6 +368,7 @@ def euclidean_distance_square_numpy(object1, object2): @return (double) Square Euclidean distance between two objects. """ + object2 = numpy.array(object2) if len(object1.shape) > 1 or len(object2.shape) > 1: return numpy.sum(numpy.square(object1 - object2), axis=1).T else: @@ -408,6 +410,7 @@ def manhattan_distance_numpy(object1, object2): @return (double) Manhattan distance between two objects. """ + object2 = numpy.array(object2) if len(object1.shape) > 1 or len(object2.shape) > 1: return numpy.sum(numpy.absolute(object1 - object2), axis=1).T else: @@ -451,6 +454,7 @@ def chebyshev_distance_numpy(object1, object2): @return (double) Chebyshev distance between two objects. """ + object2 = numpy.array(object2) if len(object1.shape) > 1 or len(object2.shape) > 1: return numpy.max(numpy.absolute(object1 - object2), axis=1).T else: @@ -492,6 +496,7 @@ def minkowski_distance_numpy(object1, object2, degree=2): @return (double) Minkowski distance between two object. """ + object2 = numpy.array(object2) if len(object1.shape) > 1 or len(object2.shape) > 1: return numpy.power(numpy.sum(numpy.power(object1 - object2, degree), axis=1), 1/degree) else: