我有一个坐标列表,长这样:
my_list = [[1, 1], [1, 3], [1, 5], [2, 1], [2, 3]]
如我们所见,前三个坐标的X值相同,但Y值不同,另外两个坐标也是相同的情况。我想创建一个新的列表,它将如下所示:
new_list = [[1, 3], [2, 2]]
其中 y1 = 3 = (1+3+5)/3
,y2 = 2 = (1+3)/2
。
我已经编写了下面的代码,但执行速度很慢。
我需要处理数十万个坐标,因此问题是:如何使这段代码运行更快?是否有任何优化或特殊的开源库可加快代码速度?
提前感谢你的帮助。
x_mass = []
for m in mass:
x_mass.append(m[0])
set_x_mass = set(x_mass)
list_x_mass = list(set_x_mass)
performance_points = []
def function(i):
unique_x_mass = []
for m in mass:
if m[0] == i:
unique_x_mass.append(m)
summ_y = 0
for m in unique_x_mass:
summ_y += m[1]
point = [float(m[0]), float(summ_y/len(unique_x_mass))]
performance_points.append(point)
return performance_points
for x in list_x_mass:
function(x)