无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網易首頁 > 網易號 > 正文 申請入駐

NumPy 函數手冊:排序與搜索

0
分享至

在數據分析、科學計算以及機器學習中,經常需要對數組進行排序與查找。例如:

? 對數據進行排序以分析分布

? 獲取排序后的索引以重排數據

? 查找元素在有序數組中的位置

? 去除重復元素并統計頻率

按照功能劃分,NumPy 中常見的數組排序與搜索函數通??梢苑譃橐韵聨最悾?/p>

(1)排序操作

(2)索引排序

(3)部分排序

(4)搜索定位

(5)去重與統計

一、排序操作

sort()

返回排序后的新數組。

numpy.sort(a, axis=-1, kind=None, order=None)

ndarray.sort(axis=-1, kind=None, order=None)

參數說明:

? a:輸入數組

? axis:排序軸(默認最后一個軸)

? kind:排序算法

'stable':穩定排序接口(推薦)

? order:結構化數組字段排序

  ['field1', 'field2']:按多個字段排序(從左到右優先級遞減)

返回值:

numpy.sort() 返回新數組,ndarray.sort() 原地修改。

示例 1:二維數組沿列軸排序

b = np.sort(a)   # 默認 axis=-1

輸出:

 [4 5 6]]

sort() 的比較是沿指定 axis 對該軸上的元素進行標量排序,其余軸僅用于確定分組。對于二維數組,當 axis=-1 時,每一行獨立按列方向進行排序。

示例 2:二維數組沿行軸排序(axis=0)

b = np.sort(a, axis=0)

輸出:

 [6 4 5]]

說明:每一列獨立排序。

示例 3:結構化數組字段排序

np.sort(a, order=['age', 'name'])

示例 4:原地排序

a.sort(axis=1)

ndarray.sort() 會直接修改原數組。

特別說明:

sort() 僅直接提供升序排序。如需降序,可對排序結果在相應軸上反轉;一維數組中常見寫法是 [::-1]。

二、索引排序

argsort()

返回排序后元素在原數組的索引順序。

numpy.argsort(a, axis=-1, kind=None, order=None)

參數說明:

? a:輸入數組

? axis:排序軸

? kind:排序算法(同 sort)

? order:結構化數組字段排序(同 sort)

示例 1:二維數組沿列軸排序索引

print(idx)

輸出:

 [1 2 0]]

argsort() 給出的不是“排序后的值”,而是“排序所需的索引順序”。

這樣做是用于通過索引重排原數組(或多個關聯數組),實現間接排序并保持數據對齊。

示例 2:利用索引重排數組

print(sorted_a)

輸出:

 [4 5 6]]

argsort() 返回位置索引,配合 take_along_axis() 可按該索引順序重排數組。

lexsort()

通過對多個鍵進行穩定排序(最后一個鍵優先),實現字典序(lexicographic order)排序,并返回對應的索引順序。

numpy.lexsort(keys, axis=-1)

參數說明:

? keys:鍵序列 (k1, k2, ..., kn) 中,最后一個鍵 kn 為主關鍵字,前面的鍵依次作為次關鍵字

? axis:排序軸

示例:二維數據按多列排序

print(a[idx])

輸出:

 [1 3]]

最后一個鍵優先排序,相當于 SQL:ORDER BY col2, col1。排序過程基于穩定排序,從低優先級到高優先級逐步完成。

示例 2:先按年齡排序再按姓名排序

print(idx)

輸出:

[1 3 0 2]

說明:lexsort() 的結果用于生成統一排序索引,從而對多列數據進行一致的多關鍵字排序。

根據索引重排數據:

print(sorted_ages)

輸出:

[20 20 25 25]

三、部分排序

partition()

返回部分排序的數組。

numpy.partition(a, kth, axis=-1, kind='introselect')

參數說明:

? a:輸入數組

? kth:第 k 個位置(0-based)

? axis:操作軸

? kind:選擇算法

'introselect':默認選擇算法(快速選擇 + 堆排序混合)

函數行為說明:

1、選擇一個目標位置 kth

2、通過選擇算法(introselect)找到該位置的正確元素

3、將數組劃分為兩部分:

右側 ≥ a[kth]

partition() 不是完全排序,而是定位第 k 小元素并完成一次分區操作。

示例 1:一維數組

print(b)

輸出(示意):

[1 2 4 7 9 5]

說明:位置 2 上是第 3 小元素,左側元素都不大于它,右側元素都不小于它。左右內部不保證有序。

示例 2:二維數組沿指定軸

print(b)

輸出(示意):

 [1 4 9]]

說明:對每一行分別執行 partition() 操作。這里 kth=1 表示每一行中第 2 小的元素應被放在索引位置 1 上。因此:

第 1 行 [4, 9, 1] 中,第 2 小元素是 4

同時只保證:該位置左側元素都不大于它,該位置右側元素都不小于它。

左右兩部分內部不保證有序,因此結果不一定是完全排序后的數組。

partition() 的結果不唯一,只保證第 kth 元素位置正確及左右分區關系。

argpartition()

返回部分排序的索引。

numpy.argpartition(a, kth, axis=-1)

參數說明(同 partition)。

示例 1:找出最小的 3 個元素

print(a[idx[:3]])

輸出(示意):

[1 2 3]

示例 2:每行最小兩個元素

np.take_along_axis(a, idx[:, :2], axis=1)

輸出:

 [1 4]]

返回的是每行最小兩個元素,但內部順序不一定有序。

argpartition() 用于高效獲取 Top-K 元素的索引,避免完整排序,時間復雜度接近 O(n)。

四、搜索定位

searchsorted()

在有序數組中查找插入位置。返回插入位置索引。

numpy.searchsorted(a, v, side='left', sorter=None)

參數說明:

? a:一維有序數組

? v:待插入值

? side:插入位置策略

'right':插入到最右側位置

? sorter:排序索引

searchsorted()基于二分查找,用于保持數組有序。

示例 1:在一維有序數組中查找(從二維中取一行)

np.searchsorted(a[0], 4)  # 2

示例 2:side 參數

np.searchsorted([1, 2, 2, 3], 2, side='right')  # 3

示例 3:插入元素并保持數組有序

print(b)

輸出:

[1 3 4 5 7]

五、去重與統計

unique()

返回數組中的唯一元素數組(可附加索引或計數)。

numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)

參數說明:

? ar:輸入數組

? return_index:是否返回原始索引

? return_inverse:是否返回重建索引

? return_counts:是否返回出現次數

? axis:按軸去重

示例:一維去重

np.unique(a, return_counts=True)

輸出:

(array([1, 2, 3]), array([1, 2, 3]))

第一個數組 [1, 2, 3] 表示去重后的唯一元素(按升序排列)。

第二個數組 [1, 2, 3] 表示對應每個元素的出現次數。

示例 2:二維數組沿行軸去重

np.unique(a, axis=0)

輸出:

 [2 3]]

說明:unique(axis=0) 將每一行視為一個元素,去重后按字典序返回唯一行。

示例 3:返回索引信息

print(indices)

輸出:

[0 2]

小結

NumPy 提供了完整的排序與搜索函數體系:sort() 與 argsort() 分別用于值排序與索引排序,partition() 與 argpartition() 用于高效的部分排序,searchsorted() 用于有序數組定位,unique() 用于去重與統計。不同函數在排序完整性、返回形式及性能方面存在差異,應根據任務需求合理選擇。

點贊有美意,贊賞是鼓勵

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
太戲劇化!國際職業殺手潛入愛爾蘭,暗殺途中出車禍,死了……

太戲劇化!國際職業殺手潛入愛爾蘭,暗殺途中出車禍,死了……

愛爾蘭華人圈
2026-06-12 20:03:32
巨大爭議!韓國 2 比 1 贏捷克,捷克球迷怒批:這是偷來的勝利

巨大爭議!韓國 2 比 1 贏捷克,捷克球迷怒批:這是偷來的勝利

十點體壇
2026-06-12 13:50:50
臺軍首次在西部海岸,朝中國大陸方向射擊30枚海馬斯火箭彈。

臺軍首次在西部海岸,朝中國大陸方向射擊30枚海馬斯火箭彈。

果媽聊娛樂
2026-06-12 11:56:07
中國連續取消兩場會議,歐盟外長惹怒所有人,法德討論對其削權

中國連續取消兩場會議,歐盟外長惹怒所有人,法德討論對其削權

流史歲月
2026-06-12 16:50:04
重磅!中超第1身價突然加盟,球迷:偉大的簽約,城市集團太猛了

重磅!中超第1身價突然加盟,球迷:偉大的簽約,城市集團太猛了

足球大腕
2026-06-12 23:25:25
月銷7萬到幾乎絕跡!2026年最慘車型,去年還被封神,如今無人問津

月銷7萬到幾乎絕跡!2026年最慘車型,去年還被封神,如今無人問津

周哥一影視
2026-06-12 19:36:11
重磅:烏克蘭摧毀俄羅斯最大的下卡姆斯克油氣廠!

重磅:烏克蘭摧毀俄羅斯最大的下卡姆斯克油氣廠!

項鵬飛
2026-06-12 18:54:51
27公斤被盜黃金悉數追回,南京警方破獲國內最大黃金盜竊案件

27公斤被盜黃金悉數追回,南京警方破獲國內最大黃金盜竊案件

現代快報
2026-06-12 14:11:13
釘釘CEO無招被開除,一切都結束了

釘釘CEO無招被開除,一切都結束了

科技頭版Pro
2026-06-12 14:15:22
德國75歲老人因撿瓶子補貼生活,誠實申報58歐元收入后遭扣減救濟金,引發全國爭議

德國75歲老人因撿瓶子補貼生活,誠實申報58歐元收入后遭扣減救濟金,引發全國爭議

英國那些事兒
2026-06-12 23:19:33
世界杯倒計時,姆巴佩飛馬德里見女友,太不可思議了

世界杯倒計時,姆巴佩飛馬德里見女友,太不可思議了

觀星娛記
2026-06-12 11:35:13
主犯獲刑12年半罰沒1600萬!含砷“脫酸劑”讓耙耙柑提前一月上市,果肉檢出重金屬

主犯獲刑12年半罰沒1600萬!含砷“脫酸劑”讓耙耙柑提前一月上市,果肉檢出重金屬

紅星新聞
2026-06-05 09:04:20
CCTV5直播!世界杯“重頭戲”,超21億歐元對決,姆巴佩PK哈蘭德

CCTV5直播!世界杯“重頭戲”,超21億歐元對決,姆巴佩PK哈蘭德

麥子的籃球故事
2026-06-12 17:40:17
韓國也有胡爾克!25歲吳賢揆世界杯首秀致勝 大腿肌肉如綠巨人

韓國也有胡爾克!25歲吳賢揆世界杯首秀致勝 大腿肌肉如綠巨人

智道足球
2026-06-12 16:51:52
看世界杯遭持槍搶劫中國男子發聲:頭被槍抵著,為保命全程配合,大使館迅速介入,現已在機場準備回國

看世界杯遭持槍搶劫中國男子發聲:頭被槍抵著,為保命全程配合,大使館迅速介入,現已在機場準備回國

瀟湘晨報
2026-06-12 16:20:20
韓媒:中國男足比捷克隊更強?他們在這種對抗下恐怕完全不適應

韓媒:中國男足比捷克隊更強?他們在這種對抗下恐怕完全不適應

夢憶之淺
2026-06-12 18:43:31
葡萄牙6-1血洗加拿大,雷戈梅開二度領跑射手榜,決賽對陣突尼斯

葡萄牙6-1血洗加拿大,雷戈梅開二度領跑射手榜,決賽對陣突尼斯

林子說事
2026-06-12 19:37:51
訂單太多?特斯拉中國:Model 3 全系...

訂單太多?特斯拉中國:Model 3 全系...

新浪財經
2026-06-12 22:30:54
韓國2-1逆轉出線在望,女球迷又火了,身材顏值都在線,笑容很甜

韓國2-1逆轉出線在望,女球迷又火了,身材顏值都在線,笑容很甜

球盲百小易
2026-06-12 19:28:00
今日未訓練!曝34歲內馬爾基本無緣首場小組賽 且可能3場全踢不了

今日未訓練!曝34歲內馬爾基本無緣首場小組賽 且可能3場全踢不了

風過鄉
2026-06-12 22:43:31
2026-06-13 03:40:49
MediaTea
MediaTea
專業的數字媒體、新媒體技術
1888文章數 80關注度
往期回顧 全部

科技要聞

剛剛,人類歷史上首位萬億美元富豪誕生!

頭條要聞

美加墨世界杯第二場比賽就現空座 英媒:尷尬

頭條要聞

美加墨世界杯第二場比賽就現空座 英媒:尷尬

體育要聞

歐洲恐韓?肉德維德?

娛樂要聞

一天4個瓜,肖戰熱巴最意外

財經要聞

萬億美元順差背后,透露這些信號

汽車要聞

標配激光雷達/雙動力可選 昊鉑S600限時售17.99萬起

態度原創

游戲
本地
數碼
公開課
軍事航空

索尼PS國區運營神了!玩?!逗谂邸?我會玩你的游戲

本地新聞

AK劉彰邂逅河北南大港濕地

數碼要聞

英國監管機構警告:亞馬遜、eBay仍在售可能致命的假冒手機充電器

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

伊朗媒體:已故最高領袖葬禮推遲舉行

無障礙瀏覽 進入關懷版