当前位置: 首页 > news >正文

07.Python代码NumPy-排序sort,argsort,lexsort

07.Python代码NumPy-排序sort,argsort,lexsort

提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是NumPy的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~
python语法-numPy 第七节 :排序sort,argsort,lexsort

上一小节详细分享了通过索引或切片来访问和修改 。本小节可能会用到取值。如晕,可查:
通过索引或切片来访问和修改


文章目录

  • 07.Python代码NumPy-排序sort,argsort,lexsort
  • 排序
    • 排序 sort
    • 指定排序的列和按字母顺序排序 sort
    • 获得索引 argsort
    • 按列排序 lexsort


排序

排序 sort

用于完成数组的排序,语法:
numpy.sort(arr, axis, kind, order)
arr: 要排序的数组
axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
kind: 默认为’quicksort’(快速排序)
order: 如果数组包含字段,则是要排序的字段

kind:
quicksort’(快速排序)
‘mergesort’(归并排序)
‘heapsort’(堆排序)

import numpy as np#随意定义数组
a = np.array([[5, 9], [10, 2]])
print(a)#输出瞅一眼
#排序后
print(np.sort(a))#就是数字小的放前面,啥是前面,下标索引小就是前面,下标0就是最前呗
print()#啥也不输出,空一行
#axis=0 就是按列来排  竖着
print(np.sort(a, axis=0))
#axis=1 就是按行来排  横着
print(np.sort(a, axis=1))#索引取值及切片,前面章节分享了。可以在文章开头点击

在这里插入图片描述

指定排序的列和按字母顺序排序 sort

复合类型,指定排序的列。且按字母排序

#定义一个dtype数据类型,字符串的name  int的age
dt = np.dtype([('name',  'S10'),('age',  int)]) 
#声明一个数组,dtype=dt  指定数据类型是dt
a = np.array([("apple", 21), ("tom", 17), ("jack", 27), ("bbz", 25)], dtype=dt)
#瞅一眼
print (a)
#按列排序:order = 列名
print ('按 name 排序:')
print (np.sort(a, order =  'name'))

在这里插入图片描述

获得索引 argsort

用于得到排序后的数组的索引值。它返回的不是数据本身,而是排序后的索引组成的数组
所以,有时重点不再数据本身上。可以通过它直接用索引就行。

import numpy as npx = np.array([3, 1, 2])
#瞅一眼
print(x)
#返回排序后的索引。交给变量y
y = np.argsort(x)
print(y)#[1 2 0]   这个是索引
#通过y来取值,look look 排序后的数组
print(x[y])

在这里插入图片描述

按列排序 lexsort

返回下标索引

对多个序列进行排序,语法:先指定一个列排序,如果这个列有数据相同的,就按照第二个列来排序,如果第二个列又有数据相同的,就按照。。。。
指定多少个列或者哪个先排哪个后排,传递不同参数就好了,语法:
ind = np.lexsort((列n,列03,列02,列01))
越写到后面的列越先排:先排列01,在列02,
如:第一个数字就是按照需要最先排序的列,最小的那个数据,返回这个数据的索引

#定义一组数据
name =  ('bangbangzhi','apple','abandon','bbz','hello')
#在定义一组数据
age =  (12,  18,  12, 20,15)
#他们两组数据是 我需要组合起来的:
#bangbangzhi,12   apple,18   abandon,12   。。。。
#组合出来之后,希望排好序:#得到一个索引
ind = np.lexsort((name,age))   #先age(大小)  相同就name(字母顺序)
print (ind)#[2 0 4 1 3]  ===》 2 第三个,12的年龄及a打头的name
print ([name[i]  +  ", "  + str(age[i])  for i in ind]) #取出ind里面的索引拼接好组合的数据

在这里插入图片描述


(会陆续更新非常多的IT技术知识及泛IT的电商知识,可以点个关注,共同交流。比心)

http://www.xdnf.cn/news/73819.html

相关文章:

  • Wasm Client SDK线上优化
  • 深度学习-全连接神经网络
  • 基于SSM+Vue的社群交流市场服务平台【提供源码+论文1.5W字+答辩PPT+项目部署】
  • DeepseekV3MLP 模块
  • 【Vue】 keep-alive:让组件状态“永生”的魔法
  • Transformer系列(三):编码器—解码器架构
  • vue3数据响应式丢失的情况有哪些
  • TDS电导率传感器详解(STM32)
  • Ansys-FLUENT-笔记1
  • Vue 3 Proxy 响应式工作原理
  • MIT 6.5940(二)
  • 搜索二叉树的实现以及一些重点接口的实现思路(包含递归以及非递归版本的实现)
  • DSL(Domain Specific Language,领域特定语言)
  • Java 多态
  • [贪心_2] (含证明)将数组和减半的最少操作次数 | 最大数
  • 【C++类和数据抽象】类的作用域
  • 代码随想录第22天:回溯算法4
  • 基于STC89C52RC和8X8点阵屏、独立按键的小游戏《打砖块》
  • Math.round(),Math.ceil(),Math.floor(),Math.sqrt(),Math.pow(),Math.abs()等!
  • 淘宝店铺详情API接口返回数据说明
  • C语言main的参数;argc与argv
  • Python爬虫实战:获取海口最近2周天气数据,为出行做参考
  • POSIX多线程,解锁高性能编程
  • 深度学习3.3 线性回归的简洁实现
  • 代码实战保险花销预测
  • AXOP38802: 400nA 超低功耗通用双通道运算放大器
  • JumpServer多用户VNC桌面配置指南:实现多端口远程访问
  • KDD2024 | BCGNN解读
  • 读文献先读图:韦恩图怎么看?
  • 第 2 篇:初探时间序列 - 可视化与基本概念