iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >numpy多级排序lexsort函数如何使用
  • 923
分享到

numpy多级排序lexsort函数如何使用

2023-07-05 17:07:36 923人浏览 八月长安
摘要

本篇内容主要讲解“numpy多级排序lexsort函数如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy多级排序lexsort函数如何使用”吧!1、lexsort() 排的是个啥&

本篇内容主要讲解“numpy多级排序lexsort函数如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy多级排序lexsort函数如何使用”吧!

1、lexsort() 排的是个啥

 lexsort() 函数的定义如下:

def lexsort(keys, axis=None)

lexsort是一种多级排序方法。作用为对给定的 keys 中的最后一个 key 排序,每一个 key 都被认为是列向量,其他 keys 用来辅助最后一个 key 进行排序。最后返回最后一个 key 进行排序的索引

哈哈哈是不是没看懂上面的解释?莫慌莫慌,我给举个简单的例子保证秒懂,可以回想这样一个场景:

对一堆学生的成绩进行排名,则排名结果就是按照总成绩从低到高排序,这个还没排序的总成绩表就是上述说的最后一个 key ,排序后的索引就是上述的返回值。

比如初始总成绩数组为:[99, 100, 98, 95, 80]  ,这就是 最后一个 key,升序排序后的数组为:[80, 95, 98, 99, 100],对应的索引为:[4, 3, 2, 0, 1],这个索引数组就是 lexsort 函数的返回值。

但是如果两个人的总成绩一样怎么进一步排序呢?这时可以按照语文成绩的升序进行排序,如果语文成绩还一样呢?那再看数学成绩,如果数学还一样呢?再查英语成绩,如果还。。。(没了没了,再相同我就要怀疑这俩人作弊了!)这里的 语文成绩、数学成绩、英语成绩 就是最后一个 key 前面的 keys,记得是从后往前数的。也就是最后一个 key 相同,就看倒数第二个 key,倒数第二个相同就看倒数第三个 key。

2、举个例子

默认你已经理解了,那就举一个例子来过一遍:

import numpy as npa = [[3, 3, 8],     [6, 9, 7],     [3, 3, 2]]b = np.array(a)  # 转换为 numpy 数组"""index = np.lexsort((b[:, 2], b[:, 1], b[:, 0])) 的运行情况:step-1、首先按照第一列 b[:, 0] 的数值 [3, 6, 3] 升序顺序对每行的位置进行重排, 第一行有两个值相同, 转到step-2            [[3, 3, 8],        [[3, 3, 8],             [6, 9, 7],   -->   [3, 3, 2],                [3, 3, 2]]         [6, 9, 7]]step-2、第一列数值相同的情况下按照相应位置第二列 b[:, 1] 的值继续排序, 第二列对应位置任然相同, 转到step-3            [[3, 3, 8],        [[3, 3, 8],             [6, 9, 7],   -->   [3, 3, 2],                [3, 3, 2]]         [6, 9, 7]]step-3、第二列数值相同的情况下按照相应位置第三列 b[:, 2] 的值继续排序            [[3, 3, 8],        [[3, 3, 2],             [6, 9, 7],   -->   [3, 3, 8],                [3, 3, 2]]         [6, 9, 7]]总结: 第一列的排序结果为[3, 3, 6] 对应的索引值为 [2, 0, 1]"""index = np.lexsort((b[:, 2], b[:, 1], b[:, 0]))print(index)  # 输出结果: [2 0 1]ans = b[index] # 按照排序结果重置数组元素的位置print(ans)# ans 的结果:[[3 3 2] [3 3 8] [6 9 7]]

如果直接对矩阵进行排序呢?

"""相当于拆解为key1 = b[0,:]key2 = b[1,:]key3 = b[2,:]  # 最后一行为主排序序列index = np.lexsort(b) 等效为: index = np.lexsort((b[0,:], b[1,:], b[2,:]))"""index = np.lexsort(b) print(index)  # 输出结果: [2 0 1]

即,当输入是一个矩阵时,默认排序最后一行的数据,前面的行都是辅助行。

到此,相信大家对“numpy多级排序lexsort函数如何使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: numpy多级排序lexsort函数如何使用

本文链接: https://www.lsjlt.com/news/353607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • numpy多级排序lexsort函数如何使用
    本篇内容主要讲解“numpy多级排序lexsort函数如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy多级排序lexsort函数如何使用”吧!1、lexsort() 排的是个啥&...
    99+
    2023-07-05
  • 使用numpy实现topk函数操作(并排序)
    np.argpartition 难以解决topK topK是常用的一个功能,在python中,numpy等计算库使用了丰富的底层优化,对于矩阵计算的效率远高于python的for-l...
    99+
    2022-11-12
  • php排序函数如何使用
    在PHP中,可以使用以下函数对数组进行排序:1. sort():对数组进行升序排序。```php$numbers = array(4...
    99+
    2023-10-12
    php
  • c语言排序函数如何使用
    C语言中的排序函数有多种,最常见的是使用标准库函数`qsort()`进行排序。`qsort()`函数的原型为:```cvoid qs...
    99+
    2023-09-27
    c语言
  • 如何使用VC库函数中的快速排序函数
    函数原型:void qsort(void *base,size_t num,size_t width, int (__cdecl *compare )(const void *, c...
    99+
    2022-11-15
    快速排序函数 VC库函数
  • PHP中怎么使用array_multisort()函数对多维数组排序
    这篇文章给大家介绍PHP中怎么使用array_multisort()函数对多维数组排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。PHP函数array_multisort()的工作方式:<php $d...
    99+
    2023-06-17
  • numpy arange函数如何使用
    numpy的arange函数用于创建一个数组,该数组是按指定步长从起始值到结束值的一系列值。arange函数的使用方式如下:nump...
    99+
    2023-10-09
    numpy
  • 如何在MySQL数据库中使用field()排序函数
    本篇文章为大家展示了如何在MySQL数据库中使用field()排序函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。field()函数使用方式如下其中,order ...
    99+
    2022-10-18
  • Excel如何用SORT函数实现排序
    Excel中可以使用SORT函数来实现排序。SORT函数可以对指定的列或区域进行排序,并返回一个按照指定排序顺序的新数组。SORT函...
    99+
    2023-09-15
    excel
  • PHP中的array_multisort()函数:如何对多个数组进行排序
    PHP中的array_multisort()函数:如何对多个数组进行排序,需要具体代码示例在PHP开发中,常常需要对多个数组进行排序,例如根据年龄、姓名等多个字段进行排序。PHP中提供了array_multisort()函数用于对多个数组进...
    99+
    2023-11-03
    PHP array_multisort 多个数组排序
  • numpy相关函数如何使用
    本篇内容介绍了“numpy相关函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!np.where首先强调一下,wher&#...
    99+
    2023-06-27
  • numpy的linspace()函数如何使用
    这篇“numpy的linspace()函数如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“numpy的lin...
    99+
    2023-06-27
  • numpy中的transpose函数如何使用
    本篇内容介绍了“numpy中的transpose函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!二维矩阵的transpose函数:...
    99+
    2023-07-05
  • 如何在 PHP 函数中使用 NumPy/Numpy 的功能?
    PHP 是一种流行的编程语言,常用于Web开发。NumPy是一个用于科学计算的Python库,提供了高效的多维数组操作和数学函数。虽然PHP和NumPy都是不同的编程语言,但是在某些情况下,我们可能需要在PHP函数中使用NumPy的功能。在...
    99+
    2023-09-17
    函数 numpy numy
  • SQLServer RANK()排名函数如何使用
    今天小编给大家分享一下SQLServer RANK()排名函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • 如何使用golang中的sort.Slice函数对切片进行排序
    对切片进行排序是Golang中常用的一个功能,可以使用sort.Slice函数快速实现。这个函数允许通过传入一个自定义的比较函数来对切片进行排序。sort.Slice函数的定义如下:func Slice(slice interface{},...
    99+
    2023-11-18
    Golang sortSlice 切片排序
  • 如何使用C#中的List.Sort函数对列表进行排序
    如何使用C#中的List.Sort函数对列表进行排序在C#编程语言中,我们经常需要对列表进行排序操作。而List类的Sort函数正是为此设计的一个强大工具。本文将介绍如何使用C#中的List.Sort函数对列表进行排序,并提供具体的代码示例...
    99+
    2023-11-17
    C# list sort
  • 如何使用PHP中的krsort()函数按键名对数组进行逆序排序
    如何使用PHP中的krsort()函数按键名对数组进行逆序排序,需要具体代码示例PHP中的数组是一种非常有用的数据结构,它可以存储多个值,并根据键名进行访问和操作。在PHP中,我们可以使用krsort()函数对数组按照键名进行逆序排序。本文...
    99+
    2023-11-18
    PHP 逆序排序 krsort()
  • JavaScript高级函数应用之如何使用分时函数
    这篇文章主要介绍JavaScript高级函数应用之如何使用分时函数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:一、前提介绍:某些函数是用户主动调用的,但因为一些客观的原因...
    99+
    2022-10-19
  • Redis中如何使用SortedSet实现多维度排序
    这篇文章主要介绍Redis中如何使用SortedSet实现多维度排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!关于SortedSet首先,我们都知道Redis的SortedSet...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作