使用python实现最短距离聚类

本文介绍如何使用Python及Numpy库实现最短距离法进行数据聚类,包括数据预处理、生成绝对值距离矩阵及具体聚类步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

  最近老师布置了一个作业,内容是对国内各省份生产总值与固定资产投资的数据,采用最短距离法进行聚类。原本这种关于矩阵运算的问题用Matlab是比较合适的,奈何Matlab我运用的不是太熟练,所以选择采用python完成。写这篇博客的目的是记录一下代码中使用到的关于Numpy库的一些函数,以及整理一下实现的流程以供需要完成类似功能的小伙伴参考。

使用的Numpy函数

  1. np.zeros:功能是创建一个0矩阵,具体使用
  2. np.max:返回矩阵的最大值,可以根据行或列,具体使用
  3. np.column_stack:将两矩阵按列合并,具体使用
  4. np.shape:返回矩阵的维度,具体使用
  5. np.fabs:得到矩阵的绝对值
  6. np.argwhere:返回查找某数的位置信息,具体使用
  7. np.where:类似于三元表达式,具体使用
  8. np.min:同np.max
  9. np.delete:删除指定行或指定列,具体使用
  10. np.append:添加数据到已有矩阵,具体使用

具体实现流程

1. 读取数据

  实验数据格式如下所示。

  读取数据部分思路即将数据逐行读入,设置一个标识以不存入第一行数据,最后根据逗号分割每行的内容并将其分别存入对应的列表中。直接附上源码吧!

def getData(data_file):
    x_data = []
    y_data = []
    global name
    name = []
    iden = 1
    f = open(data_file, "r", encoding='utf_8')
    line = f.readline()
    while line != '':
        # 去除第一行
        if iden == 1:
            iden = iden + 1
            line = f.readline()
            continue
        # 存入数据至两个列表
        tem = line.strip('\n').split(',')
        name.append(tem[0])
        x_data.append(tem[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值