Я хочу построить 3 "k означает" точки в диаграмме рассеяния.Вычисление k средств и построение графика по диаграмме рассеяния
from pylab import plot,show
from numpy import array
from scipy.cluster.vq import kmeans,vq
data = array([1,1,1,1,1,1,3,3,3,3,3,3,7,7,7,7,7,7])
plot(data,marker='*',linewidth=0)
centroids,x = kmeans(data,3)
idx,x = vq(data,centroids)
plot(data[idx==0,0],data[idx==0,1],'yellow',
data[idx==1,0],data[idx==1,1],'yellow',
data[idx==2,0],data[idx==2,1],'yellow')
plot(centroids[:,0],centroids[:,1],'red',markersize=8)
show()
Что плохого происходит с выше, так как производились следующее сообщение об ошибке коды:
plot(data[idx==0,0],data[idx==0,1],'yellow',
IndexError: too many indices for array
'данных [IDX == 0,0]', что вы пытаетесь добиться с этим? это не синтаксис python valide – Oz123
@ Oz123 - 'data [idx == 0, 0]' отлично подходит для синтаксиса python, и это очень распространенная идиома в numpy (хотя она используется и в других местах). –
@JoeKington, смею сказать: вы можете показать рабочий пример? Я хотел бы узнать что-то новое! – Oz123