首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从pandas数据帧中获取N个最小距离对

,可以通过以下步骤实现:

  1. 导入必要的库和模块:
代码语言:txt
复制
import pandas as pd
from scipy.spatial.distance import pdist, squareform
  1. 创建一个包含数据的pandas数据帧:
代码语言:txt
复制
data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10],
        'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
  1. 计算数据帧中每对样本之间的距离:
代码语言:txt
复制
distances = pdist(df.values)
  1. 将距离转换为方阵形式:
代码语言:txt
复制
distance_matrix = squareform(distances)
  1. 获取N个最小距离对的索引:
代码语言:txt
复制
indices = distance_matrix.argsort(axis=None)[:N]
  1. 根据索引获取对应的最小距离对:
代码语言:txt
复制
min_distance_pairs = [(i // distance_matrix.shape[0], i % distance_matrix.shape[0]) for i in indices]

完整的代码如下:

代码语言:txt
复制
import pandas as pd
from scipy.spatial.distance import pdist, squareform

data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10],
        'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)

distances = pdist(df.values)
distance_matrix = squareform(distances)

N = 3
indices = distance_matrix.argsort(axis=None)[:N]
min_distance_pairs = [(i // distance_matrix.shape[0], i % distance_matrix.shape[0]) for i in indices]

print(min_distance_pairs)

这段代码将从给定的pandas数据帧中计算出N个最小距离对的索引,并打印出结果。你可以根据实际需求修改数据帧和N的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券