各位大神好,问题是这样的:
最近在看K-means聚类算法的python实现版本,看到了一个朋友写的程序,下面是选取数据集dataSet的k个初始中心的函数
各位大神好,问题是这样的:
最近在看K-means聚类算法的python实现版本,看到了一个朋友写的程序,下面是选取数据集dataSet的k个初始中心的函数
18 def randCent(dataSet, k):
19 n = shape(dataSet)[1]
20 centroids = mat(zeros((k,n)))
21 for j in range(n):
22 minJ = min(dataSet[:,j])
23 rangeJ = float(max(array(dataSet)[:,j]) - minJ)
24 centroids[:,j] = minJ + rangeJ * random.rand(k,1)
25 return centroids
其中第22行没看明白minJ = min(dataSet[:,j])
dataSet是一个mat类型的numpy矩阵。
dataSet[:,j] 是什么意思啊?请教各位朋友,十分感谢
其中第22行没看明白minJ = min(dataSet[:,j])
dataSet是一个mat类型的numpy矩阵。
dataSet[:,j] 是什么意思啊?请教各位朋友,十分感谢
dataSet[:,j]是矩阵第j列的意思吧,和matlab的语法有些类似。
这是一个dataframe的数据结构。dataSet[:j]表示从0行到j行的数据。上面的说错了不是列。我今天刚刚也看了那个k-means算法,哈哈
上面的dataSet是一个matrix,然后dataSet[:,j]表示对矩阵中每个列表元素遍历,遍历时候保留每个列表元素的第j列并最后形成新的matrix
dataSet[:,j]是取所有行的第j列数据