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


相关文章
|
22天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
5天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
24 9
|
14天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
27 14
|
16天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
29 10
|
20天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
1月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
53 3
|
1月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
81 0
|
1月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析
|
4月前
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 常用数据类型list&set()
本文介绍了Python中list和set两种数据类型的使用,包括它们的创建、取值、增删改查操作、排序以及内置函数的使用,还探讨了list的比较函数和set的快速去重功能。
38 0
|
7月前
|
索引 Python
Python标准数据类型-List(列表)
Python标准数据类型-List(列表)