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]}
之后你可以很容易地计算平均值。
我有三个独立的数组:经度、纬度和 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]}
之后你可以很容易地计算平均值。