1
我想繪製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