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

求助:编写Python函数计算手机参数的理想最优/最差欧氏距离

计算手机参数的理想最优/最差欧氏距离

原始参数表格

手机品牌Battery(mAh)RAM(GB)Storage(GB)ED from Ideal bestED from Ideal worst
Sansung100042
iPhone800063
Motorola300031

计算公式

  • 理想最优欧氏距离(ED from Ideal best):

    √((Battery(mAh)-Battery(mAh)最大值)^2 + (RAM(GB)-RAM(GB)最大值)^2 + (Storage(GB)-Storage(GB)最大值)^2)

  • 理想最差欧氏距离(ED from Ideal Worst):

    √((Battery(mAh)-Battery(mAh)最小值)^2 + (RAM(GB)-RAM(GB)最小值)^2 + (Storage(GB)-Storage(GB)最小值)^2)

示例:三星(Sansung)手机的理想最优欧氏距离为√((1000-8000)2+(4-6)2+(2-3)^2) = 7000.00035714

完整Python实现

import pandas as pd
import numpy as np

def calculate_ideal_distances(df):
    # 提取各参数的极值
    battery_max, battery_min = df["Battery(mAh)"].agg(["max", "min"])
    ram_max, ram_min = df["RAM(GB)"].agg(["max", "min"])
    storage_max, storage_min = df["Storage(GB)"].agg(["max", "min"])
    
    # 计算理想最优距离
    df["ED from Ideal best"] = np.sqrt(
        (df["Battery(mAh)"] - battery_max)**2 +
        (df["RAM(GB)"] - ram_max)**2 +
        (df["Storage(GB)"] - storage_max)**2
    )
    
    # 计算理想最差距离
    df["ED from Ideal worst"] = np.sqrt(
        (df["Battery(mAh)"] - battery_min)**2 +
        (df["RAM(GB)"] - ram_min)**2 +
        (df["Storage(GB)"] - storage_min)**2
    )
    
    return df

# 测试用例
if __name__ == "__main__":
    # 构造测试数据
    test_data = {
        "手机品牌": ["Sansung", "iPhone", "Motorola"],
        "Battery(mAh)": [1000, 8000, 3000],
        "RAM(GB)": [4, 6, 3],
        "Storage(GB)": [2, 3, 1],
        "ED from Ideal best": ["", "", ""],
        "ED from Ideal worst": ["", "", ""]
    }
    df = pd.DataFrame(test_data)
    
    # 执行计算并输出结果
    result_df = calculate_ideal_distances(df)
    print(result_df.round(8))

说明

  • 函数calculate_ideal_distances接收包含手机参数的DataFrame作为输入,先一次性提取各参数的最大/最小值,再批量计算每行的两个欧氏距离
  • 测试用例使用给定的示例数据,运行后会输出填充好距离值的表格,结果保留8位小数便于查看精度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:24:47