2 views
in Python

I worked on making functions for K Nearest Neighbors. I have tested each function separately and they all work well. However whenever I put them together and run KNN_method, it shows unhashable type: 'numpy.ndarray'. Here is my code:

def distance(p,point):

import numpy as np

value = np.sqrt(sum(np.power((p-point),2)))

return(value)

def find_neighbors(p,list_of_points, k = 3):

import numpy as np

distances = np.zeros(list_of_points.shape)

for i in range(list_of_points.shape):

distances[i]= distance(p,list_of_points[i])

ind = np.argsort(distances)

return(ind[0:k])

import random

vote_result = {}

if key in vote_result:

vote_result[key] += 1

else:

vote_result[key] = 1

final_list = []

for (number, vote) in vote_result.items():

if vote == max(vote_result.values()):

final_list.append(number)

Winner = random.choice(final_list)

return(Winner)

def KNN_method(p , list_of_points , outcomes , k = 3):

ind = find_neighbors(p , list_of_points , k)

return(Final)

by (106k points)

Firstly you need to convert it into to tuple.

hash(tuple(np.array([1,2,3,4])))