Python:通过其他两个数组中重复的 long 和 lat 对的索引对第三个数组中的特定元素进行平均

Python: Average specific elements in a third array by the indexes of duplicate pairs of long and lat in two other arrays

我有三个独立的数组:经度、纬度和 current_speed。

数组每一行的元素都匹配,即在 (long_1, lat_1) 速度等于 current_speed_1, 在 (long_n, lat_n) 速度等于current_speed_n

long 和 lat 对在整个数组中重复,但间隔不相等,例如

long_1, lat_1, current_speed_1

long_2, lat_2, current_speed_2

......, ...., ......

......, ...., ......

long_1, lat_1, current_speed_n

我想在每对重复的 (long, lat) 处取速度的位置平均值,即在 (long_1,lat_1) 处取所有速度的平均值。

这需要找到每个重复的对,找到它们的索引值并对那对的所有速度索引进行平均。

我曾尝试使用嵌套循环并附加到新数组,但这似乎不是一种非常 pythonic 的实现方式,而且很快就会变得复杂。不幸的是,我对 python 的了解还不够,无法想出更简洁的方法,有人有什么建议吗?

你可以做的是存储每对唯一的纬度,作为字典的输入,并考虑这些纬度和经度的所有速度。例如。

>>> lat = [1,2,3,1]
>>> long = [7,8,9,7]
>>> speed = [20,50,29,49]
>>> data = {}
>>> for i in range(len(lat)):
...     try:
...         data[(lat[i],long[i])].append(speed[i])
...     except KeyError:
...         data[(lat[i],long[i])]=[speed[i]]
... 
>>> data
{(2, 8): [50], (3, 9): [29], (1, 7): [20, 49]}

之后你可以很容易地计算平均值。