欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

numpy多級(jí)排序lexsort函數(shù)的使用

 更新時(shí)間:2023年03月27日 15:03:20   作者:地球被支點(diǎn)撬走啦  
本文主要介紹了numpy多級(jí)排序lexsort函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、lexsort() 排的是個(gè)啥

 lexsort() 函數(shù)的定義如下:

def lexsort(keys, axis=None)

lexsort是一種多級(jí)排序方法。作用為對(duì)給定的 keys 中的最后一個(gè) key 排序,每一個(gè) key 都被認(rèn)為是列向量,其他 keys 用來輔助最后一個(gè) key 進(jìn)行排序。最后返回最后一個(gè) key 進(jìn)行排序的索引。

哈哈哈是不是沒看懂上面的解釋?莫慌莫慌,我給舉個(gè)簡(jiǎn)單的例子保證秒懂,可以回想這樣一個(gè)場(chǎng)景:

對(duì)一堆學(xué)生的成績(jī)進(jìn)行排名,則排名結(jié)果就是按照總成績(jī)從低到高排序,這個(gè)還沒排序的總成績(jī)表就是上述說的最后一個(gè) key ,排序后的索引就是上述的返回值。

比如初始總成績(jī)數(shù)組為:[99, 100, 98, 95, 80]  ,這就是 最后一個(gè) key,升序排序后的數(shù)組為:[80, 95, 98, 99, 100],對(duì)應(yīng)的索引為:[4, 3, 2, 0, 1],這個(gè)索引數(shù)組就是 lexsort 函數(shù)的返回值。

但是如果兩個(gè)人的總成績(jī)一樣怎么進(jìn)一步排序呢?這時(shí)可以按照語文成績(jī)的升序進(jìn)行排序,如果語文成績(jī)還一樣呢?那再看數(shù)學(xué)成績(jī),如果數(shù)學(xué)還一樣呢?再查英語成績(jī),如果還。。。(沒了沒了,再相同我就要懷疑這倆人作弊了?。┻@里的 語文成績(jī)、數(shù)學(xué)成績(jī)、英語成績(jī) 就是最后一個(gè) key 前面的 keys,記得是從后往前數(shù)的。也就是最后一個(gè) key 相同,就看倒數(shù)第二個(gè) key,倒數(shù)第二個(gè)相同就看倒數(shù)第三個(gè) key。

2、舉個(gè)例子

默認(rèn)你已經(jīng)理解了,那就舉一個(gè)例子來過一遍:

import numpy as np
a = [[3, 3, 8],
     [6, 9, 7],
     [3, 3, 2]]
b = np.array(a)  # 轉(zhuǎn)換為 numpy 數(shù)組
"""
index = np.lexsort((b[:, 2], b[:, 1], b[:, 0])) 的運(yùn)行情況:
step-1、首先按照第一列 b[:, 0] 的數(shù)值 [3, 6, 3] 升序順序?qū)γ啃械奈恢眠M(jìn)行重排, 第一行有兩個(gè)值相同, 轉(zhuǎn)到step-2
            [[3, 3, 8],        [[3, 3, 8],
             [6, 9, 7],   -->   [3, 3, 2],   
             [3, 3, 2]]         [6, 9, 7]]
step-2、第一列數(shù)值相同的情況下按照相應(yīng)位置第二列 b[:, 1] 的值繼續(xù)排序, 第二列對(duì)應(yīng)位置任然相同, 轉(zhuǎn)到step-3
            [[3, 3, 8],        [[3, 3, 8],
             [6, 9, 7],   -->   [3, 3, 2],   
             [3, 3, 2]]         [6, 9, 7]]
step-3、第二列數(shù)值相同的情況下按照相應(yīng)位置第三列 b[:, 2] 的值繼續(xù)排序
            [[3, 3, 8],        [[3, 3, 2],
             [6, 9, 7],   -->   [3, 3, 8],   
             [3, 3, 2]]         [6, 9, 7]]
總結(jié): 第一列的排序結(jié)果為[3, 3, 6] 對(duì)應(yīng)的索引值為 [2, 0, 1]
"""
index = np.lexsort((b[:, 2], b[:, 1], b[:, 0]))
print(index)  # 輸出結(jié)果: [2 0 1]
ans = b[index] # 按照排序結(jié)果重置數(shù)組元素的位置
print(ans)
# ans 的結(jié)果:
[[3 3 2]
 [3 3 8]
 [6 9 7]]

如果直接對(duì)矩陣進(jìn)行排序呢?

"""
相當(dāng)于拆解為
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)  # 輸出結(jié)果: [2 0 1]

即,當(dāng)輸入是一個(gè)矩陣時(shí),默認(rèn)排序最后一行的數(shù)據(jù),前面的行都是輔助行。

到此這篇關(guān)于numpy多級(jí)排序lexsort函數(shù)的使用的文章就介紹到這了,更多相關(guān)numpy lexsort函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用pycharm生成代碼模板的實(shí)例

    使用pycharm生成代碼模板的實(shí)例

    今天小編就為大家分享一篇使用pycharm生成代碼模板的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python?異步之如何啟動(dòng)獲取事件循環(huán)

    Python?異步之如何啟動(dòng)獲取事件循環(huán)

    這篇文章主要為大家介紹了Python?異步之如何啟動(dòng)獲取事件循環(huán)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 如何使用Python?VTK高亮顯示actor

    如何使用Python?VTK高亮顯示actor

    這篇文章主要介紹了如何使用Python?VTK高亮顯示actor,通過Python-VTK在同一個(gè)窗口中,高亮顯示選中的actor。本例子中的代碼,當(dāng)窗口中的圓球actor被選中時(shí),會(huì)變成紅色,并且會(huì)顯示actor三遍面片邊緣信息,下文相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • 用python畫圣誕樹三種代碼示例介紹

    用python畫圣誕樹三種代碼示例介紹

    大家好,本篇文章主要講的是用python畫圣誕樹三種代碼示例介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    這篇文章主要介紹了Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境,需要的朋友可以參考下
    2018-11-11
  • 使用python 3實(shí)現(xiàn)發(fā)送郵件功能

    使用python 3實(shí)現(xiàn)發(fā)送郵件功能

    本文通過實(shí)例代碼給大家介紹了使用python 3實(shí)現(xiàn)發(fā)送郵件功能,代碼簡(jiǎn)單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Python數(shù)據(jù)清洗&預(yù)處理入門教程

    Python數(shù)據(jù)清洗&預(yù)處理入門教程

    凡事預(yù)則立,不預(yù)則廢,訓(xùn)練機(jī)器學(xué)習(xí)模型也是如此。數(shù)據(jù)清洗和預(yù)處理是模型訓(xùn)練之前的必要過程,否則模型可能就廢了。本文是一個(gè)初學(xué)者指南,將帶你領(lǐng)略如何在任意的數(shù)據(jù)集上,針對(duì)任意一個(gè)機(jī)器學(xué)習(xí)模型,完成數(shù)據(jù)預(yù)處理工作
    2022-10-10
  • Python利用字典樹實(shí)現(xiàn)獵詞游戲

    Python利用字典樹實(shí)現(xiàn)獵詞游戲

    獵詞(word hunt)是一類很常見的游戲,給你一張字母組成的表,然后讓你在這些字母中盡可能多的去尋找單詞。這類游戲用字典樹就能輕松完成,本文就來具體講講實(shí)現(xiàn)步驟,需要的可以參考一下
    2022-06-06
  • Python導(dǎo)入引用其他文件的函數(shù)實(shí)戰(zhàn)案例(推薦!)

    Python導(dǎo)入引用其他文件的函數(shù)實(shí)戰(zhàn)案例(推薦!)

    這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入引用其他文件的函數(shù)的相關(guān)資料,文中通過代碼以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法示例

    Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法示例

    這篇文章主要介紹了Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法,結(jié)合實(shí)例形式分析了Python針對(duì)命令行字符串顯示顏色屬性相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08

最新評(píng)論