def randCent(dataSet, k):
n = np.shape(dataSet)[1]#输出列数 此处应改为0
centroids = np.mat(np.zeros((k,n))) # 每个质心有n个坐标值,总共要k个质心
for j in range(n):
minJ = min(dataSet[:,j])
maxJ = max(dataSet[:,j])
rangeJ = float(maxJ - minJ)
centroids[:,j] = minJ + rangeJ * random.rand(k, 1)
return centroids
原因:
numpy库包括random
改为:
centroids[:,j] = minJ + rangeJ * np.random.rand(k, 1)
rand(4,1)生成4行1列的随机浮点数