Di seguito è riportato il codice in cui il chiamante viene chiamato per primo da un altro modulo, centroidi è di tipo float (un array di numberofcluster * numberoffeatures) etichette è 1d array di numero di spiegazioni
l'array non viene aggiornato
def caller(centroids, labels):
number_of_features = len(centroids[0])
one_column = [0, 0, 0, 0, 0]
i = 0
j = 0
array = [[0 for x in xrange(number_of_features)] for x in xrange(5)]
while i < number_of_features:
j = 0
while j < 5:
one_column[j] = centroids[j][i]
j += 1
rank(one_column, i, array)
i += 1
return calculatemean(number_of_features, array)
def rank(one_column, ithfeature, array):
temp_dict = {}
i = 0
while i < 5:
temp_dict[one_column[i]] = i
i += 1
number_of_uniquevalues = len(set(temp_dict))
sorted_dict = OrderedDict(sorted(temp_dict.items()))
i = 0
keys_list = sorted_dict.keys()
while i < 5:
array[one_column.index(keys_list[i])][ithfeature] = sorted_dict[keys_list[i]]
i += 1
risposte:
0 per risposta № 1Ho fatto riferimento a questo link
Matrice bidimensionale in pitone
e il problema è stato risolto