有效的方法来获取长向量,最小值的最小值索引
发布时间:2020-12-16 23:27:15 所属栏目:Python 来源:网络整理
导读:我有一长串经度值(len(Lon)= 420481),另一个是纬度值.我想找到相应的纬度到经度的最小值. 我试过了: SE_Lat = [Lat[x] for x,y in enumerate(Lon) if y == min(Lon)] 但这需要几年的时间才能完成. 有没有人知道更有效的方式? 也许你也有一个建议: 我现在
我有一长串经度值(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())解决方案(?20x使用我的设置时使用420481随机创建的记录)的速度更快,尽管当然,您需要将数据值存储在numpy中以利用此加速. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读