Python onbelangrijkstype: ‘Numpy.ndarray’

Ik heb gewerkt aan het maken van functies voor K Dichtstbijzijnde buren. Ik heb elke functie afzonderlijk getest en ze werken allemaal goed. Wanneer ik ze echter samenvoeg en voer KNN_method, het toont unhashable type: 'numpy.ndarray'.
Hier is mijn 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[0])
    for i in range(list_of_points.shape[0]):
        distances[i]= distance(p,list_of_points[i])
    ind = np.argsort(distances)
    return(ind[0:k])
def majority_votes(votes):
    import random
    vote_result = {}
    for key in votes:
        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) 
    Final = majority_votes(outcomes[ind])
    return(Final)

Antwoord 1, Autoriteit 100%

Converteer eerst naar Tuple.

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

Other episodes