python中Excel SUMXMY2(对应数组元素的差平方和)的优雅和/或快速等价物

2024-10-04 11:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

试验样品:

a = [0.1357678   0.27303184 -0.75600229]
b = [0.3813097  -0.72613616  0.18361217]

我想在Python中实现SUMXMY2(a, b),而不使用for循环

我该怎么做?你知道吗


Tags: for样品sumxmy2
2条回答

平方差由下式给出:

c = ((a - b) ** 2)

然后简单地用

c = c.sum()

如果a和b是列表,可以先将它们转换为熊猫系列:

a = pd.Series(a)

或将numpy数组作为:

a = np.asarray(a)

据我所知,-不是列表的有效运算符,因此我将使用列表理解。从技术上讲,它确实使用for循环,但我称之为“足够优雅”。你知道吗

c = [(b[i] - a[i]) ** 2 for i in range(len(b))]
result = sum(c)

要使其更紧凑,但可读性较差:

c = sum([(b[i] - a[i]) ** 2 for i in range(len(b))])

如果要处理不同长度的列表,请使用以下命令:

c = [(b[i] - a[i]) ** 2 for i in range(min(len(b), len(a)))]
result = sum(c)

相关问题 更多 >