获取列表中所有数字之间的平均差(python)

tim*_*son -3 python list-comprehension

我有一个列表,我想了解其中所有数字之间的差异。从算法上来说,似乎我应该取列表中每个项目彼此相减的绝对值,然后找到减法总和的平均值。不用担心绝对值部分。这仅与我的应用程序相关。

例如:

list_a = [1,2,3,4]

list_a0 = (abs(1-2) + abs(1-3) + abs(1-4))/3 = 1+2+3 = 2
list_a1 = (abs(2-1) + abs(2-3) + abs(2-4))/3 = 1+1+2 = 1.33
list_a2 = (abs(3-1) + abs(3-2) + abs(3-4))/3 = 2+1+1 = 1.33
list_a3 = (abs(4-1) + abs(4-2) + abs(4-3))/3 = 3+2+1 = 2
avg = (lista0 + lista1 + lista2 + lista3)/4 = 1.67
Run Code Online (Sandbox Code Playgroud)

我对 python 比较陌生。有人能够提供有关如何循环执行list_a此操作的提示吗?

小智 5

考虑使用超级高效且强大的 numpy 包。这是示例:

>>> import numpy as np
>>> list_a = [1,2,3,4]
>>> a = np.array(list_a)
>>> np.diff(a)
[1,1,1]
Run Code Online (Sandbox Code Playgroud)

需要 9.489059448242188e-05 秒,即 0.00009 秒