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 秒