我正在查看我的坐标数据,由于某些预处理,我看到一些具有不同参数的重复坐标。我希望能够合并与匹配坐标对应的属性并获得简化的结果。为了阐明我的意思,这里有一个例子:
X = [1.0, 2.0, 3.0, 2.0]
Y = [8.0, 3.0, 4.0, 3.0]
A = [13, 16, 20, 8]
以上数据读取如下:点(1.0, 8.0)的值为13,(2.0, 3.0)的值为16,注意第二个点和第四个点的坐标相同,属性值不同.我希望能够从坐标列表中删除重复项并对属性求和,以便结果将是新列表:
New_X = [1.0, 2.0, 3.0]
New_Y = [8.0, 3.0, 4.0]
New_A = [13, 24, 20]
24是坐标相同的第二个点和第四个点的16和8的和,所以保留一个点求和。
我不确定该怎么做,我想过使用嵌套的 for 坐标 zip 循环,但我不确定如何制定它来对属性求和。
感谢任何帮助!
最佳答案
我认为维护 3 个列表有点尴尬。像这样的东西:
D = dict()
for x,y,a in zip(X,Y,A):
D[(x,y)] = D.get((x,y),0) + a
将所有内容放在一个地方。
如果您希望将其分解回 3 个列表:
for (x,y),a in D.items():
newX.append(x)
newY.append(y)
newA.append(a)
关于python - python中重复坐标的求和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070068/