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

Euclidean Distance(欧氏距离):如何用循环函数批量计算样本距离

代码笔误修正

你原来计算第一条距离的代码中data.iloc[0,1+1]属于笔误,按照你给出的第一条距离结果0.156433反推,应该取索引为1的NORMALIZED_SAT字段,否则会误取ACCEPT_NUM列导致计算结果错误。

方法1:for循环实现(符合你要求的重复计算逻辑)

如果需要沿用你原本的计算逻辑用循环完成所有行的赋值,代码如下:

import numpy as np

# 遍历所有24行计算,会覆盖已计算的第0行结果
for i in range(len(data)):
    distance2 = (data.iloc[i, 0] - 0.5) ** 2 + (data.iloc[i, 1] - 0.5) ** 2
    distance = np.sqrt(distance2)
    data.iloc[i, 3] = distance

如果只想计算剩余23条、跳过已经算好的第0行,把循环起始值改为1即可:

# 仅计算第1到第23行
for i in range(1, len(data)):
    distance2 = (data.iloc[i, 0] - 0.5) ** 2 + (data.iloc[i, 1] - 0.5) ** 2
    distance = np.sqrt(distance2)
    data.iloc[i, 3] = distance

方法2:向量化运算(更推荐,无需手动写循环)

如果你使用的是pandas DataFrame结构,直接用向量化操作一行就能完成所有距离计算,效率更高且不会出现索引写错的问题:

data['distance'] = np.sqrt((data['NORMALIZED_GPA'] - 0.5) ** 2 + (data['NORMALIZED_SAT'] - 0.5) ** 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:24:01