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的海洋小白
                                水平有限,欢迎指正!!!
                                欢迎评论、收藏。


相关文章
|
24天前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
9天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
19 1
|
9天前
|
搜索推荐 Python
快速排序的 Python 实践:从原理到优化,打造你的排序利器!
本文介绍了 Python 中的快速排序算法,从基本原理、实现代码到优化方法进行了详细探讨。快速排序采用分治策略,通过选择基准元素将数组分为两部分,递归排序。文章还对比了快速排序与冒泡排序的性能,展示了优化前后快速排序的差异。通过这些分析,帮助读者理解快速排序的优势及优化的重要性,从而在实际应用中选择合适的排序算法和优化策略,提升程序性能。
23 1
|
10天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
10天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
1月前
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
22天前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
51 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
1月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
46 2
|
9天前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
18 0
|
1月前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第10天】本文介绍了OAuth 2.0和JSON Web Tokens (JWT) 两种现代Web应用中最流行的认证机制。通过使用Flask-OAuthlib和PyJWT库,详细展示了如何在Python环境中实现这两种认证方式,从而提升系统的安全性和开发效率。OAuth 2.0适用于授权过程,JWT则简化了认证流程,确保每次请求的安全性。结合两者,可以构建出既安全又高效的认证体系。
42 1