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

如何用Python计算两个列表对应元素与其均值差值的乘积和?

Python离均差乘积和实现方案

你要计算的是两个序列的离均差乘积和(也是协方差的分子计算项),可参考以下两种实现方式:

方案1:纯Python原生实现(无需第三方依赖)

直接用Python内置函数实现,适合小数据量、不想安装额外库的场景:

from statistics import mean # Python 3.4及以上版本标准库自带

def calc_cross_product(x1: list[float|int], x2: list[float|int]) -> float:
    if len(x1) != len(x2):
        raise ValueError("两个输入列表的长度必须相等")
    m1 = mean(x1)
    m2 = mean(x2)
    # 生成器表达式累加所有离均差乘积
    return sum((a - m1) * (b - m2) for a, b in zip(x1, x2))

# 测试你的样例数据
x1 = [3, 1, 3, 1, 3, 13]
x2 = [2, 3, 31, 3, 13, 3]
print(calc_cross_product(x1, x2)) # 输出结果为-37.0

方案2:NumPy实现(适合大数据量计算场景)

如果涉及大规模数值计算,推荐用NumPy向量化运算提升效率:

import numpy as np

x1 = np.array([3, 1, 3, 1, 3, 13])
x2 = np.array([2, 3, 31, 3, 13, 3])

# 直接计算
cross_product = np.sum((x1 - x1.mean()) * (x2 - x2.mean()))
print(cross_product) # 输出结果同样为-37.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:48:05