python 对一组list数据,进行区间划分,按照大小排序并返回索引值

简介: 最近在对海洋数据进行处理时,对数据需要进行一些排序,数据匹配等操作;现对我所希望实现的一些函数进行总结:

最近在对海洋数据进行处理时,对数据需要进行一些排序,数据匹配等操作;

现对我所希望实现的一些函数进行总结:


一、对一组纬度数据进行排序:



现有4000多个纬度数据,从第0个至最后一个从-90°~90°随机分布。


20210425213916128.png


想要实现从-90°依次从到小排至90°,既升序排列,同时返回其下标

这里引用两个函数sorted 、enumerate


第一个函数:sorted 用法说明如下


list = sorted(iterable, key=None, reverse=False)

如果只想实现升序排列,直接进行如下操作即可


lat_sort=sorted(lat)


得到:


2021042521452153.png


但是我们想同时返回其在原来列表中的下标,既需要enumerate函数的帮忙

其使用方法如下:


enumerate(iterable, start=0)

Parameters:

Iterable: any object that supports iteration

Start: the index value from which the counter is

to be started, by default it is 0


我们先对lat数据直接进行使用看看返回了什么:


a=enumerate[lat]


20210425215237208.png


发现无法查看其具体结果,所以再将其转换为list格式,以便浏览


a=list(enumerate(lat))


20210425215354695.png


很明显,上述操作,将每个原始lat中数据的值及其下标返回了,因此再次进行sorted排序是即可查看它对应的下标啦~


但是!!!,因为此时list中既有下标、又有数值,在进行排序时是按照下标还是数值呢,所以需要增加一个维度设定,既


对于sorted(iterable, key=None, reverse=False)中的key进行设定,使其按照所需纬度进行排序。


这里我需要的是根据数值排序,所以进行如下操作:


a=sorted(list(enumerate(lat)),key=lambda dimension: dimension[1])


。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

补充一下:

lambda 函数是一种小的匿名函数,可接受任意数量的参数,但只能有一个表达式。

比如:对于想要传入的参数使其加上6,即可设置为:


x= lambda a : a + 10


回到正题

我们运行上述代码会得到:


20210425220332923.png


果然!!!不出所料按照我们想要的结果实现啦~


下面,是提取对应的维度结果,比如我们想要将下标和数值分别放置在一个list中,只要这样即可:

index = [i[0] for i in a]
lat_sort = [i[1] for i in a]


20210425220549547.png


20210425220559851.png


不出所料,是不是很easy呐!

如果想要按照原始lat中,不同数值按照不同颜色排列,只需将list转为array即可


lat_sort=np.array(lat_sort)



20210425220830150.png


二、将lat数据按照10为区间进行排序并统计每个区间存在的个数:



首先整理一下思路,我们要进行排序,然后区间进行分割。

这里引出一个新的函数:groupby(),其参数属性如下所示:


DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=, observed=False, dropna=True)

感兴趣的小伙伴们可以去点击下方中进行仔细浏览:


groupby参数引用


总之,我们可以通过groupby,达到分割数据的目的,


进行如下操作:

lat_sort=[]
for k, g in groupby(sorted(lat), key=lambda x:x//10):
     #x//10:对x取整除 - 返回商的整数部分
    print('{}-{}:{}'.format(k*10, (k+1)*10-1,len(list(g))))


20210425222210801.png

完美!!!


                                一个努力学习python的海洋小白
                                水平有限,欢迎指正!!!
                                欢迎评论、收藏。


相关文章
|
1月前
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
155 83
|
3天前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
21天前
|
JSON API 数据格式
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
|
17天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
1月前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据
|
20天前
|
JSON 监控 API
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
|
1月前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
58 12
|
26天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
1月前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
25天前
|
存储 数据采集 JSON
Python爬取某云热歌榜:解析动态加载的歌曲数据
Python爬取某云热歌榜:解析动态加载的歌曲数据

热门文章

最新文章