gpt4 book ai didi

python - 获取长向量中最小值索引的有效方法,python

转载 作者:太空狗 更新时间:2023-10-29 19:37:59 24 4
gpt4 key购买 nike

我有一长串经度值 (len(Lon) = 420481),还有一个纬度值。我想找到对应的纬度到经度的最小值。

我试过:

SE_Lat = [Lat[x] for x,y in enumerate(Lon) if y == min(Lon)]

但这需要很长时间才能完成。

有谁知道更有效的方法吗?

也许你对此也有建议:我现在尝试找到与新经度最接近的对应纬度,该经度不在原始经度向量中。我试过这个:

minDiff = [min(abs(x - lon_new) for x in lons)] # not very quick, but works
[(lat,lon) for lat,lon in izip(lats,lons) if abs(lon-lon_new)==minDiff]

最后一行抛出错误,因为有多个匹配项。我现在不知道如何只找到一个值,让我们说第一个。非常感谢任何帮助!

最佳答案

我可以推荐 numpy 吗?

import numpy
nplats = numpy.array(lats)
nplons = numpy.array(lons)

# this part is 20x faster than using the built-in python functions
index = numpy.argmin(nplats)

print nplats[index], nplons[index]

这比 min(izip()) 解决方案快得多(使用 420481 随机创建的记录时使用我的设置约 20 倍),当然您需要将数据值存储在 numpy 中以利用此速度-向上。

关于python - 获取长向量中最小值索引的有效方法,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com