python数据分析numpy基础之sort对数组排序

1 python数据分析numpy基础之sort对数组排序

numpy数组和python的内置列表类似,也可以进行排序,numpy.sort()返回排序后的数组副本,而ndarray.sort()对数组进行就地排序,会改变原数组。

用法

numpy.sort(a, axis=-1, kind=None, order=None)

描述

numpy.sort()返回沿指定轴排序后的数组副本,可以通过order指定排序字段。

入参

a:必选,需要排序的数组或元组或列表。

axis:可选,整数,指定要排序的轴,默认为-1,沿最后一个轴排序。如果为None,则转为一维数组进行排序。

order:可选,字符串或字符串数组,表示排序字段。

1.1 入参a

numpy.sort()的入参a,为必选入参,表示需排序的数据,可以为数组、列表、元组。

>>> import numpy as np
# 对列表排序
>>> np.sort([5,-2,3,6,8])
array([-2,  3,  5,  6,  8])
# 对元组排序
>>> np.sort((5,-2,3,6,8))
array([-2,  3,  5,  6,  8])
# 对数组排序
>>> np.sort(np.array((5,-2,3,6,8)))
array([-2,  3,  5,  6,  8])

1.2 入参axis

numpy.sort()的入参axis为可选入参,只能为整数(不支持元组),范围[0, ndim),默认为-1,沿最后一个轴进行升序排序。axis=None,则多维数组则转换为一维数组后升序排序。

若axis=n为整数,则沿指定轴n排序。

若axis=负数,则-1对应最后一个轴,-2倒数第2个轴,依此类推。

>>> import numpy as np
>>> ar3=np.random.randint(0,10,24).reshape(2,3,4)
>>> ar3
array([[[1, 8, 5, 0],[2, 3, 4, 4],[5, 9, 8, 2]],[[6, 6, 1, 9],[6, 1, 9, 2],[4, 6, 9, 2]]])
# axis为None,转为一维数组后升序排序
>>> np.sort(ar3,axis=None)
array([0, 1, 1, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 6, 8, 8, 9, 9,9, 9])
# axis沿0轴升序排序
>>> np.sort(ar3,axis=0)
array([[[1, 6, 1, 0],[2, 1, 4, 2],[4, 6, 8, 2]],[[6, 8, 5, 9],[6, 3, 9, 4],[5, 9, 9, 2]]])
# axis沿1轴升序排序
>>> np.sort(ar3,axis=1)
array([[[1, 3, 4, 0],[2, 8, 5, 2],[5, 9, 8, 4]],[[4, 1, 1, 2],[6, 6, 9, 2],[6, 6, 9, 9]]])
# axis沿2轴升序排序
>>> np.sort(ar3,axis=2)
array([[[0, 1, 5, 8],[2, 3, 4, 4],[2, 5, 8, 9]],[[1, 6, 6, 9],[1, 2, 6, 9],[2, 4, 6, 9]]])
# 若axis=负数,则-1对应最后一个轴,-2倒数第2个轴,依此类推。
>>> np.sort(ar3,axis=-1)
array([[[0, 1, 5, 8],[2, 3, 4, 4],[2, 5, 8, 9]],[[1, 6, 6, 9],[1, 2, 6, 9],[2, 4, 6, 9]]])
# axis默认为-1       
>>> np.sort(ar3)
array([[[0, 1, 5, 8],[2, 3, 4, 4],[2, 5, 8, 9]],[[1, 6, 6, 9],[1, 2, 6, 9],[2, 4, 6, 9]]])

1.3 入参order

numpy.sort()的入参order为可选入参,为字符串或字符串列表,表示排序字段。字符串列表时表示按多个字段排序。若未给出order,则按dtype的顺序排序。

>>> import numpy as np
>>> vals=[('zs',50.5,21),('ls',51.2,19),('ww',50.1,19),('td',60.9,36)]
>>> dtype=[('name','S5'),('income',float),('age',int)]
>>> ar=np.array(vals,dtype=dtype)
>>> ar
array([(b'zs', 50.5, 21), (b'ls', 51.2, 19), (b'ww', 50.1, 19),(b'td', 60.9, 36)],dtype=[('name', 'S5'), ('income', '<f8'), ('age', '<i4')])
# order指定按age升序排序
>>> np.sort(ar,order='age')
array([(b'ls', 51.2, 19), (b'ww', 50.1, 19), (b'zs', 50.5, 21),(b'td', 60.9, 36)],dtype=[('name', 'S5'), ('income', '<f8'), ('age', '<i4')])
# order指定按age和income升序排序
>>> np.sort(ar,order=('age','income'))
array([(b'ww', 50.1, 19), (b'ls', 51.2, 19), (b'zs', 50.5, 21),(b'td', 60.9, 36)],dtype=[('name', 'S5'), ('income', '<f8'), ('age', '<i4')])
# order未给,默认按dtype的顺序升序排序
>>> np.sort(ar)
array([(b'ls', 51.2, 19), (b'td', 60.9, 36), (b'ww', 50.1, 19),(b'zs', 50.5, 21)],dtype=[('name', 'S5'), ('income', '<f8'), ('age', '<i4')])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/739825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决cryptography库报错【DLL load failed while importing _rust】

解决 DLL load failed while importing _rust python使用库cryptography问题分析解决办法 python使用库cryptography 当 from cryptography.hazmat.bindings._rust import exceptions as rust_exceptions 时&#xff0c;会报错&#xff1a; ImportError: DLL load failed whi…

机器学习--循环神经网络(RNN)3

本篇文章结合具体的例子来介绍一下LSTM运算方式以及原理。请结合上篇文章的介绍食用。 一、具体例子 如上图所示&#xff0c;网络里面只有一个 LSTM 的单元&#xff0c;输入都是三维的向量&#xff0c;输出都是一维的输出。 这三维的向量跟输出还有记忆元的关系是这样的。 假设…

深度学习:如何面对隐私和安全方面的挑战

深度学习技术的广泛应用推动了人工智能的快速发展&#xff0c;但同时也引发了关于隐私和安全的深层次担忧。如何在保护用户隐私的同时实现高效的模型训练和推理&#xff0c;是深度学习领域亟待解决的问题。差分隐私、联邦学习等技术的出现&#xff0c;为这一挑战提供了可能的解…

备战蓝桥之搜索

2024.3.12 P2802 回家 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) import java.awt.Checkbox; import java.awt.PageAttributes.OriginType; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrite…

k8s-生产级的k8s高可用(2) 25

部署containerd k8s2、k8s3、k8s4在配置前需要重置节点&#xff08;reset&#xff09;在上一章已完成 禁用所有节点docker和cri-docker服务 所有节点清除iptables规则 重置后全部节点重启 由于之前部署过docker&#xff0c;因此containerd默认已安装 修改配置 启动containe…

python学习、开发实用文档分享

今天给大家分享两个好用的关于python django框架使用的在线文档 Django中文在线文档: Django 文档 | Django 文档 | Django django rest framework 文档 1 - Serialization - Django REST framework中文站点 有开发和学习中遇到不会的, 或者需要学习的技能点直接去上面两个…

嵌入式工资为啥比纯软工资低那么多?

嵌入式工资为啥比纯软工资低那么多&#xff1f; 在开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些 电气工程师学习方法和资料&#xff0c;让我不断提升自己&…

并发支持库(3)-互斥

互斥可以对操作集合上锁&#xff0c;避免多个线程同时访问共享资源。这些操作集合可以看作是一次原子操作。 本文章的代码库&#xff1a; https://gitee.com/gamestorm577/CppStd 1. 互斥类 c提供了各种互斥类。 mutex 构造函数 默认构造函数构造一个处于未锁定状态的互…

短路逻辑运算--c语言

#include<stdio.h>int main() { int i1; i,i||i; printf("%d",i);//3return 0; } 再逻辑运算的原则一定优先于其他逻辑判断&#xff0c;再这个式子中||前面的结果已经为真存在逻辑短路的情况所以不用管后面的式子。 i&#xff0c;i自增两次i3&#xff0c;

爬虫技术之正则提取静态页面数据

第一天 简单示例 在爬虫过程中&#xff0c;我们获取到了页面之后&#xff0c;通常需要做的就是解析数据&#xff0c;将数据持久化到数据库为我所用。如何又快又准确得提取有效数据&#xff1f;这是一门技术&#xff0c;看了我的博客之前可能略有难度&#xff0c;但各位大师看…

redis源码分析

是什么 是基于内存(而不是磁盘)的kv(而不是关系型mysql那种)数据库&#xff0c;通过空间换时间 源码分析 跳表skiplist 假设你有个有序链表&#xff0c;你想看某个特定的值是否出现在这个链表中&#xff0c;那你是不是只能遍历一次链表才能知道&#xff0c;时间复杂度为O(n…

Postman环境变量全局变量设置(详解版)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在公司中&#xff0c;一般会存在开发环境、测试环境、线上环境等…

找不到mfc140u.dll怎么办?修复缺失mfc140u.dll的多种方案分享

mfc140u.dll文件是一个重要的动态链接库文件&#xff0c;它在Windows操作系统中发挥着关键的作用。由于各种原因&#xff0c;例如应用程序冲突或系统错误等&#xff0c;mfc140u.dll文件有时会出现丢失的情况。一旦发生这种问题&#xff0c;运行依赖此文件的应用程序将无法正常启…

力扣刷题日记——L724. 寻找数组的中心下标

1. 前言 今天是力扣刷题日记的第二天&#xff0c;今天依旧是一道简单题啊&#xff0c;慢慢来&#xff0c;先看看题目是什么吧。 2. 题目描述 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和…

JSP中间件漏洞

jsp的注入最难挖 另外3个好挖 struts2 url有action 就代表是struts2 用漏洞利用工具 下面之这两个一般都可以用工具扫一下 、 有些网站看起来没有 action实际上我们提交了 我们的账号和密码 之后就有了 工具包是下面 这些 github上面也有 用法就是如下图 把url放进去就…

数据库驱动和url连接示例

1.MySQL 配置示例&#xff1a;↓ driver_class:com.mysql.cj.jdbc.Driver url:jdbc:mysql://IP地址:端口号/数据库名?characterEncodingUTF-8&useSSLfalse&useUnicodetrue&serverTimezoneUTC 2.MySQL(使用information_schema查询表结构) 配置示例&#xff1a;↓…

关于数据预处理的重要性

主要是为了计算机能够准确的理解数据 以下是需要处理的数据&#xff1a; 1、缺失值 仅一部分实例有值的特性&#xff0c;以及没有任何特征值的实例都被视为缺失数据 一个特征丢失了超过5%~10%的值&#xff0c;被认为是缺失数据 缺失值实例应该被删除&#xff0c;避免引入偏…

【ST-学习链接】

ST-学习链接 ■ 江科大STM32学习笔记&#xff08;上下&#xff09;■ STM32 学习&#xff08;四&#xff09;中断系统 ■ 江科大STM32学习笔记&#xff08;上下&#xff09; 江科大STM32学习笔记&#xff08;上&#xff09; 江科大STM32学习笔记&#xff08;下 ■ STM32 学习…

整数和浮点数在内存中储存的形式

整数 整数的二进制表示法有三种&#xff0c;即原码、反码、补码。 三种表示方式均有符号位和数值位 符号位位于数值位最高位的那一位&#xff0c;分别用0和1表示&#xff0c;0表示正数&#xff0c;1表示负数。 数值位&#xff0c;除最高位的那一位外其他都是数值位。 正整数…

续篇:展开聊下 state 与 渲染树中位置的关系

&#x1f43e; 上篇的结尾处&#xff0c;提到了 > 为了提升性能&#xff0c; React 仅在渲染之间 存在差异 时才会更改 DOM 节点。 本篇&#xff0c;✓ &#x1f1e8;&#x1f1f3; 展开聊下 state 与 渲染树中位置的关系 &#x1f4e2;&#x1f4e2;&#x1f4e2; 状态与…