python笔记-排序函数

2023-11-12

List排序

  • sort()
val_list = [1, 7, 3, 9, 5, 6]
val_list.sort() # sort()没有返回值,在原列表上排序
val_list.sort(reverse=True) # 逆序

print(val_list)

使用sort()方法对list排序会修改list本身,不会返回新list,通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效sort()。
在这里插入图片描述

  • sorted()
num_list = [1, 7, 3, 9, 5, 6]
num_list_ = sorted(num_list) # sorted, list作为参数,返回排序后的list
num_list_revs = sorted(num_list, reverse=True) # 逆序

print(num_list_)
print(num_list_revs)

numpy

1.sort

numpy.sort(a, axis=1, kind=‘quicksort’, order=None)

  • a :所需排序的数组
  • axis:数组排序时的基准,axis=0按行排列;axis=1按列排列
  • kind:数组排序时使用的方法,其中:kind=′quicksort′为快排;kind=′mergesort′为混排;kind=′heapsort′为堆排;
  • order:一个字符串或列表,可以设置按照某个属性进行排序
import numpy as np

nums = [3, 4, 2, 7, 1, 6]
nums = np.array(nums)
nums_sorted = np.sort(nums) # 从小到大排序
print(nums_sorted)

2.argsort

numpy.argsort(a, axis=1, kind=‘quicksort’, order=None)

  • a :所需排序的数组
  • axis:数组排序时的基准,axis=0按行排列;axis=1按列排列
  • kind:数组排序时使用的方法,其中:kind=′quicksort′为快排;kind=′mergesort′为混排;kind=′heapsort′为堆排;
  • order:一个字符串或列表,可以设置按照某个属性进行排序
import numpy as np

nums = [3, 4, 2, 7, 1, 6]
nums = np.array(nums)
nums_sorted = np.sort(nums)
print(nums_sorted)

arg_sorted = np.argsort(nums)
print(arg_sorted)

numpy.argsort() 返回按值递增排序后的索引列表
在这里插入图片描述

argsort()的应用

矩阵特征分解后得到,特征值和特征向量,但是,我们不一定需要所有的特征,故可以选取特征值最大的几个特征和这些特征对应的特征向量。这样,我们只需要利用argsort()求出最大特征值的索引,有了索引就可以直接提取最大特征值和对应的最大特征向量。

def eig_top_k(mat, k):
        eig_vals, eig_vecs = np.linalg.eig(mat)
        print(eig_vals)
        print(eig_vecs)
        sorted_indices = np.argsort(eig_vals) # 值从小到大排序,返回排序的索引
        return eig_vals[sorted_indices[:-k-1:-1]], eig_vecs[:,sorted_indices[:-k-1:-1]] # 复制最后一个到倒数第k个元素

nums = np.array([[1, 7, 9], [3, 6, 7], [4, 3, 5]])
eig_vals, eig_vecs = eig_top_k(nums, 2)
print(eig_vals)
print(eig_vecs)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python笔记-排序函数 的相关文章

随机推荐

  • 音视频开发系列-音视频核心知识精讲

    音视频开发系列 音视频核心知识精讲 1 视频为什么会花屏 2 音频为什么容易有杂音 3 音视频进阶需要掌握什么项目 音视频核心知识 为什么会花屏 容易有杂音 进阶需要掌握什么项目 https www bilibili com video B
  • day09:定时器

    目录 总结 1 三种解绑事件 2 事件冒泡 3 阻止事件冒泡 4 事件委托 事件代理 5 事件的三个阶段 一 最大的匿名函数 二 定时器setInterval 三 一起摇摆案例 四 亮起来案例 五 美女时钟效果 六 进一步优化时钟 七 渐变
  • 我们用4行代码节省了100万 相见恨晚的PCDN

    我们公司主要做视频在线点播 还有少量视频下载 比较关心网络加速 首先就是价格 其次是首播时间 流畅率这几个核心性能指标 目前使用阿里云PCDN也有几个月了 整体结果是超预期 值得安利的 写这篇文章 希望能通过选型对比 接入过程 效果实现几个
  • torchserve使用-注册模型设置参数(二)

    目录 1 自定义处理程序 2 托管多个模型 3 模型接口 3 1 添加注册新模型 3 2 查看是否注册成功 3 3 查看注册模型基本信息 3 4 设置注册模型参数 3 5 使用以下代码注销模型 3 6 模型版本控制 4 记录和指标 1 自定
  • xxl-job-admin多数据库支持

    记录一下改造过程 针对 xxl job 2 3版本 什么是xxl job 你的系统中有很多定时任务 如果你想统一管理 你需要一个调度系统 XXL JOB是一个分布式任务调度平台 其核心设计目标是开发迅速 学习简单 轻量级 易扩展 githu
  • 机器学习初实践——恶意域名检测

    这次恶意域名检测实践是第一次自己做机器学习而非单纯复现 参考了第一次鸢尾花的代码和GitHub的UrlDetect中的特征提取参数的代码 一 数据处理 首先要实现自动化处理数据 在这里我没有使用urlparser而是直接写脚本提取域名 提取
  • 【南邮操作系统实验】页面置换算法 (FIFO、LRU、OPTP)

    写在前面 操作系统内存管理的页面置换算法 因为懒得看老师给的代码 太长了而且据说好像还有错误 就自己写了一个python版本的 因为比较菜 所以写的一般般 仅供大伙参考一下Orz python版本的 代码如下 import random 生
  • mysql视图基本操作

    mysql视图介绍及如何创建视图请看 一个案例理解mysql视图 本章主要记录视图的修改 删除以及展示视图语法 目录 一 创建视图 二 修改视图 三 删除视图 四 更新视图 五 展示视图 一 创建视图 请看 一个案例理解mysql视图 二
  • Docker 使用网络

    文章目录 外部访问容器 端口绑定 映射所有接口地址 映射到指定地址的指定端口 查看当前端口配置 多个端口绑定 容器互联 配置 DNS 外部访问容器 1 使用 P 标记时 Docker 会随机映射一个 490000 49900 的端口到内部容
  • 应用Cryptopp库实现AES加密【转】

    crypto 自身的wiki上就有一些例子 可以参考 http www cryptopp com wiki Category Sample 本文来源 http ste xidian edu cn bbs a a asp B 5 ID 224
  • DirectX11学习笔记(不定期更新)

    目录 1 DX与HLSL的矩阵 2 创建常量缓冲区的尺寸需要按照16字节对齐 1 DX与HLSL的矩阵 DX的矩阵 DirectX XMMATRIX 按照行主元优先存储 而HLSL的矩阵默认按照列主元优先存储 解决这个问题的方法有两种 1
  • 【STM32 x ESP8266】连接 MQTT 服务器(报文,附部分源码解析)

    MQTT 协议作为物联网非常重要的传输协议 如何使用它十分重要 如果有不理解的同学可以点击这里学习 这里只是简单介绍一下 同时这里附上MQTT 3 1 1协议中文版 pdf 的链接 对协议底层感兴趣的同学可以下载学习一下 同时下面的实现函数
  • Qt Q_UNUSED使用

    以前经常在程序里定义很多局部变量 如果没有使用 Qt Creator就会报 未引用的局部变量 警告 因为不影响程序 一开始也没管 但随着程序代码变多 警告变动还是有点烦 到今天才知道这个Qt的有个消除这个警告的宏 Q UNUSED int
  • Flink系统架构

    Flink 的运行时架构中 最重要的就是两大组件 作业管理器 JobManger 和任务管理器 TaskManager 对于一个提交执行的作业 JobManager 是真正意义上的 管理者 Master 负责管理调度 所以在不考虑高可用的情
  • 如何将java项目部署到Linux服务器上

    博主之前并没有操作过服务器 以及部署项目 记第一次操作心得 仅供参考 在服务器上已经有了mysql的五个rpm安装包 jdk的rpm tomcat的tar gz 博主找了其他的博文说是需要配置java环境但是博主并没有操作到这一步 安装包是
  • ThinkPad开机停留在boot menu界面、进不了系统的解决方法

    方法一 1 开机点击F1进入到bios界面 2 进入Security Secure Boot Disabled 如果不修改Secure boot选项为Disabled 在光驱引导时可能会出现报错 3 进入Startup UEFI Legac
  • C++57个入门知识点_37 虚函数的直接调用与间接调用(函数的调用分为直接调用和间接调用,间接调用是虚函数所具有的的性质;间接调用:运行期通过查找对象的虚表下标来调用函数的方法)

    前面两篇C 57个入门知识点 35 函数覆盖的概念1 函数覆盖条件 父子类继承关系 函数名 参数列表 返回值 调用约定必须相同 有virtual关键字 函数覆盖 类虚表中成员函数从继承自父类变为自己的 C 57个入门知识点 36 函数覆盖的
  • Android中的Loaders机制

    转自 http blog csdn net guoshaobei article details 17451647 Loaders机制在Android 3 0版本后引入 Loaders机制使一个Activity或者一个Fragment更加容
  • 职工管理系统(C++)

    职工管理系统有以下8个功能 增加职工信息 实现批量添加职工功能 将信息录入到文件中 职工信息为 职工编号 姓名 部门编号 显示职工信息 显示公司内部所有职工的信息 删除离职职工 按照编号删除指定的职工 修改职工信息 按照编号修改职工个人信息
  • python笔记-排序函数

    List排序 sort val list 1 7 3 9 5 6 val list sort sort 没有返回值 在原列表上排序 val list sort reverse True 逆序 print val list 使用sort 方法