针对K-means聚类算法仅以质心作为聚类依据,在处理非圆球形数据集时效果不理想,数据集的形状特性未得到体现的问题,提出一种基于形状的K-means算法(shape K-means, SPK-means)。将判定点到不同簇中质心以及点到不同簇的最近边缘点的距离作为判定规则,使其具备对任意形状的数据集进行聚类的功能。设置两种不同的数据集进行聚类试验,结果表明,SPK-means聚类算法在处理非圆球形数据集时,其结果遵循原数据集的形状特征。