You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python基于PCA CSV生成距离矩阵后提取IID对与对应距离的方法咨询

实现方案

你可以直接用pandas自带的stack()方法完成距离矩阵到三元组结构的转换,代码如下:

基础转换代码

# 堆叠距离矩阵,将列名转为二级索引,重置索引后得到三列结构
triple_df = distance.stack().reset_index()
# 重命名列匹配你需要的字段含义
triple_df.columns = ["IID1", "IID2", "distance"]

执行后triple_df就是包含IID1、IID2、对应距离的DataFrame,你可以按需转成列表或numpy数组:

# 转嵌套列表格式
triple_list = triple_df.values.tolist()
# 转numpy数组格式
triple_arr = triple_df.values

可选优化(按需使用)

  1. 过滤自身配对记录(排除IID1=IID2、距离为0的冗余项)
triple_df = triple_df[triple_df["IID1"] != triple_df["IID2"]]
  1. 对称距离去重(距离矩阵为对称矩阵,A到B和B到A的距离完全一致,仅保留单条记录即可)
triple_df = triple_df[triple_df["IID1"] < triple_df["IID2"]]

内容的提问来源于stack exchange,提问作者Reem Alsuwaidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:06:04