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.pswp.cn/diannao/79862.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79862.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79862.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LVDS系列8:Xilinx 7系可編程輸入延遲(一)

在解析LVDS信號時,十分重要的一環就是LVDS輸入信號線在經過PCB輸入到FPGA中后,本來該嚴格對齊的信號線會出現時延,所以需要在FPGA內部對其進行延時對齊后再進行解析。 Xilinx 7系器件中用于輸入信號延時的組件為IDELAYE2可編程原語&#xff0…

AI驅動研發效率在中后臺的實踐

本文探討了AI驅動的中后臺前端研發實踐, 涵蓋設計出碼、接口定義轉換、代碼擬合、自動化測試等多個環節,通過具體案例展示了AI技術如何優化研發流程并提升效率。特別是在UI代碼編寫和接口聯調階段,并提出了設計出碼(Design to Cod…

【Rust 精進之路之第6篇-流程之舞】控制流:`if/else`, `loop`, `while`, `for` 與模式匹配初窺

系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯 作者: 碼覺客 發布日期: 2025-04-20 引言:讓代碼“活”起來——指令的流動 在前面的文章中,我們已經掌握了 Rust 的基礎數據類型(標量和復合類型)以及如何通過變量綁定來存儲和命名它們。這相當于我們準備好了程序…

C++ 表達式求值的基礎(四十九)

1. 運算符的分類 1.1 按操作數個數 一元運算符(Unary) 作用于單個操作數: 取地址 &obj解引用 *ptr邏輯非 !b一元加減 x, -x遞增遞減 i, i-- 二元運算符(Binary) 作用于兩個操作數: 算術運算 a b, a …

Three.js + React 實戰系列 : 從零搭建 3D 個人主頁

可能你對tailiwindcss毫不了解,別緊張,記住我們只是在學習,學習的是作者的思想和技巧,并不是某一行代碼。 在之前的幾篇文章中,我們已經熟悉了 Three.js 的基本用法,并通過 react-three-fiber 快速構建了一…

Kotlin實現Android應用保活方案

Kotlin實現Android應用保活優化方案 以下的Android應用保活實現方案,更加符合現代Android開發規范,同時平衡系統限制和用戶體驗。 1. 前臺服務方案 class OptimizedForegroundService : Service() {private val notificationId 1private val channel…

windows拷貝文件腳本

1、新建腳本文件xxx.bat,名字任意,后綴未.bat即可,將以下內容拷貝進去,修改src和des為自己文件的目錄即可。 echo off :: 設置字符集為UTF-8,命令窗口能正確顯示中文字符。 chcp 65001 rem 讀取當前目錄并進入當前目…

Qt 核心庫總結

Qt 核心庫(QtCore) QtCore 是 Qt 框架的基礎模塊,提供非圖形界面的核心功能,是所有 Qt 應用程序的基石。它包含事件循環、信號與槽、線程管理、文件操作、字符串處理等功能,適用于 GUI 和非 GUI 應用程序。本文將從入…

大模型相關面試問題原理及舉例

大模型相關面試問題原理及舉例 目錄 大模型相關面試問題原理及舉例Transformer相關面試問題原理及舉例大模型模型結構相關面試問題原理及舉例注意力機制相關面試問題原理及舉例大模型與傳統模型區別 原理:大模型靠海量參數和復雜結構,能學習更復雜模式。傳統模型參數少、結構…

【AI+HR實戰應用】用DeepSeek提升HR工作效能

用DeepSeek提升HR工作效能 一、AI 與 AIGC 簡介二、DeepSeek 介紹三、使用 DeepSeek 的渠道及硬件要求四、使用 DeepSeek 的核心技巧五、AI 在人力資源的應用場景六、AI 繪畫與多模態應用七、個人使用 AI 的能力層級八、企業擁抱 AI 的策略九、提示詞管理的重要性 一、AI 與 AI…

Postgresql幾個常用的json操作

將行記錄轉為jsonb row_to_json(表名或別名)將行記錄集轉為json數組 (jsonb) select json_agg(row_to_json(t) order by t.task_name) into v_next_taskfrom dyna_flow_task t where t.zidv_template_id and t.levelv_next_level ;訪問json字段,用->…

ESP32學習與快速總結——5.系統存儲

1.ESP32分區表 為什么ESP32要分區 00:34-- 簡述:其他單片機生成文件少,功能少,而ESP32功能多,文件多 分區表各個文件簡介 --7:31vscode查看分區表 --9:33ota通過idf.py menuconfi…

Linux 進程控制(自用)

非阻塞調用waitpid 這樣父進程就不會阻塞,此時循環使用我們可以讓父進程執行其他任務而不是阻塞等待 進程程序替換 進程PCB加載到內存中的代碼和數據 替換就是完全替換當前進程的代碼段、數據段、堆和棧,保存當前的PCB 代碼指的是二進制代碼不是源碼&a…

Spring 微服務解決了單體架構的哪些痛點?

1. 部署困難 (Deployment Difficulty & Risk) 單體痛點: 整體部署: 對單體應用的任何微小修改(哪怕只是一行代碼),都需要重新構建、測試和部署整個龐大的應用程序。部署頻率低: 由于部署過程復雜且風險高,發布周期通常很長&a…

面試題之高頻面試題

最近開始面試了,410面試了一家公司 針對自己薄弱的面試題庫,深入了解下,也應付下面試。在這里先祝愿大家在現有公司好好沉淀,定位好自己的目標,在自己的領域上發光發熱,在自己想要的領域上(技術…

【MySQL】Read view存儲的機制,記錄可見分析

read view核心組成 1.1 事務id相關 creator_trx_id: 創建該read view的事務id 每開啟一個事務都會生成一個 ReadView,而 creator_trx_id 就是這個開啟的事務的 id。 m_ids: 創建read view時系統的活躍事務(未提交的事務)id集合 當前有哪些事…

【刷題Day20】TCP和UDP(淺)

TCP 和 UDP 有什么區別? TCP提供了可靠、面向連接的傳輸,適用于需要數據完整性和順序的場景。 UDP提供了更輕量、面向報文的傳輸,適用于實時性要求高的場景。 特性TCPUDP連接方式面向連接無連接可靠性提供可靠性,保證數據按順序…

Flink 內部通信底層原理

Flink 集群內部節點之間的通信是用 Akka 實現,比如 JobManager 和 TaskManager 之間的通信。而 operator 之間的數據傳輸是用 Netty 實現。 RPC 框架是 Flink 任務運行的基礎,Flink 整個 RPC 框架基于 Akka 實現。 一、相關概念 RPC(Remote Procedure Call) 概念 定義:…

企業級Kubernetes 1.28高可用集群離線部署全指南(含全組件配置)

企業級Kubernetes 1.28高可用集群離線部署全指南(含全組件配置) 摘要:本文手把手教學在無外網環境下部署生產級Kubernetes 1.28高可用集群,涵蓋ETCD集群、HAProxy+Keepalived負載均衡、Containerd運行時、Calico網絡插件及Kuboard可視化管理全流程。提供100年有效證書配置…

【中間件】redis使用

一、redis介紹 redis是一種NoSQL類型的數據庫,其數據存儲在內存中,因此其數據查詢效率很高,很快。常被用作數據緩存,分布式鎖 等。SpringBoot集成了Redis,可查看開發文檔Redis開發文檔。Redis有自己的可視化工具Redis …