Я пытаюсь запустить реализацию кластеризации kmedoids
, доступную на этой странице github .
Предоставленный минимальный рабочий пример довольно прост, но яне удается выполнить первую строку с помощью функции kMedoids()
без появления ошибки:
from sklearn.metrics.pairwise import pairwise_distances
import numpy as np
import kmedoids
# 3 points in dataset
data = np.array([[1,1],
[2,2],
[10,10]])
# distance matrix
D = pairwise_distances(data, metric='euclidean')
# split into 2 clusters
M, C = kmedoids.kMedoids(D, 2) # <-- THIS RAISES AN ERROR
print('medoids:')
for point_idx in M:
print( data[point_idx] )
print('')
print('clustering result:')
for label in C:
for point_idx in C[label]:
print('label {0}: {1}'.format(label, data[point_idx]))
Ошибка:
Traceback (most recent call last):
File "/usr/lib/python3.5/code.py", line 91, in runcode
exec(code, self.locals)
File "", line 1, in
File "", line 9, in kMedoids
File "mtrand.pyx", line 4832, in mtrand.RandomState.shuffle
File "mtrand.pyx", line 4835, in mtrand.RandomState.shuffle
TypeError: 'range' object does not support item assignment
Я настроил пример в Eclipse PyDev какследует для Python 3.5:
- Установлены все модули с использованием
pip3 install
(numpy, scipy и scikit-learn) - Добавлен файл
kmedoids.py
в том же каталоге, что и example.py
Кто-нибудь пытался использовать эту функцию в последнее время?Может ли моя версия Python (3.5) вызывать эту ошибку?