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

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

NumPy 函數手冊:數組索引與切片

0
分享至

在數據分析、科學計算以及機器學習中,經常需要對數組中的數據進行訪問、提取或重新排列。例如:選取部分元素、按條件篩選數據、獲取某些位置的元素或改變數組維度結構等。

NumPy 提供了一組與數組索引、切片以及位置選擇相關的函數,用于完成這些操作。這些函數能夠以向量化方式高效處理數組數據,并避免 Python 循環帶來的性能損失。

按照功能劃分,NumPy 中與數組索引與切片相關的常用函數通常可以分為以下幾類:

(1)索引位置獲取

(2)條件索引

(3)元素提取與選擇

(4)索引變換與坐標轉換

(5)軸與維度操作

一、索引位置獲取

argmax()

返回數組中最大值所在的索引位置。

numpy.argmax(a, axis=None)

參數說明:

? a:輸入數組

? axis:沿指定軸返回最大值所在的索引,默認為 None

示例 1:

# 3

說明:數組中最大值為 8,其索引位置為 3。

示例 2:指定軸

# [1 0]

argmin()

返回數組中最小值所在的索引位置。

numpy.argmin(a, axis=None)

參數說明:

? a:輸入數組

? axis:沿指定軸返回最小值所在的索引

示例:

# 3

說明:最小值為 1,其索引位置為 3。

argwhere()

返回數組中滿足條件的元素坐標索引。

numpy.argwhere(a)

參數說明:

? a:輸入數組(通常為布爾數組)

示例:

#  [4]]

argwhere() 為了統一表示不同維度的索引,始終返回形狀為 (N, ndim) 數組。其中:

? N:滿足條件的元素數量

? ndim:原數組的維度數

也就是說,每一行表示一個元素的位置坐標。

nonzero()

返回數組中非零元素的索引位置。

numpy.nonzero(a)

參數說明:

? a:輸入數組

示例 1:一維數組

# (array([1, 3, 4]),)

說明:數組中非零元素位于索引位置 1、3、4。

示例 2:二維數組

# (array([0, 1, 1]), array([1, 0, 2]))

返回結果表示非零元素的行索引與列索引:

(1,2) 對應元素 3

該函數常用于獲取數組中非零元素的位置,也常作為條件索引的基礎工具使用。

NumPy 還提供了 flatnonzero(),用于返回數組中非零元素在扁平數組中的索引位置。等價于:

np.nonzero(a.ravel())[0]

但 flatnonzero() 寫法更加簡潔。

二、條件索引

where()

根據條件返回滿足條件的元素索引,或在兩個數組之間進行條件選擇。

numpy.where(condition, x=None, y=None)

參數說明:

? condition:條件表達式

? x:條件為 True 時返回的值

? y:條件為 False 時返回的值

示例 1:返回索引

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

說明:返回滿足條件元素的索引位置(元組)。

示例 2:條件選擇

# [0 1 0 1]

where() 是 NumPy 中最常用的條件索引函數之一。

三、元素提取與選擇

take()

根據指定索引提取數組元素。

numpy.take(a, indices, axis=None)

參數說明:

? a:輸入數組

? indices:索引序列

? axis:指定軸

示例:

# [10 30]

take() 相當于使用索引列表提取元素。

choose()

根據索引數組從多個數組中選擇元素。

numpy.choose(a, choices)

參數說明:

? a:索引數組

? choices:可供選擇的數組序列

示例:

# [10  2 30  4]

index 中的每個值表示在對應位置應從哪個候選數組中取值,并返回該數組在同一位置的元素。其行為相當于:

result[i] = choices[index[i]][i]

比如:

? 當索引為 0 時,從第 0 個候選數組 x 中取相同位置的元素

? 當索引為 1 時,從第 1 個候選數組 y 中取相同位置的元素

因此結果為:

[10, 2, 30, 4]

該函數適用于按位置從多個候選數組中進行選擇。

take_along_axis()

沿指定軸,根據給定索引提取元素。

numpy.take_along_axis(arr, indices, axis)

參數說明:

? arr:輸入數組

? indices:索引數組

? axis:沿哪個軸提取元素

示例:

#  [60]]

該函數會按照 idx 中給出的索引,在 axis=1 的方向上逐行提取元素:

? 第一行索引為 1,取出 30

? 第二行索引為 0,取出 60

因此結果為:

 [60]]

take_along_axis() 常與 argmax()、argmin()、argsort() 等函數配合使用,用于根據已計算出的索引位置提取對應元素。

compress()

根據布爾條件提取數組元素。

numpy.compress(condition, a, axis=None)

參數說明:

? condition:布爾數組

? a:輸入數組

? axis:指定軸

示例:

# [10 30]

說明:當 axis=None 時,數組會先被展平成一維數組再進行篩選。

extract()

根據條件返回數組中滿足條件的元素。

numpy.extract(condition, a)

參數說明:

? condition:條件數組

? a:輸入數組

示例:

# [5 8]

返回滿足條件的元素,并以一維數組形式返回。

ix_()

構造用于多維數組索引的網格索引結構。該函數常用于從數組中提取子矩陣或子塊(subarray)。

numpy.ix_(*args)

參數說明:

? args:多個一維整數數組

返回值:

返回一組可用于數組索引的數組對象,用于構造多維索引的笛卡爾組合(Cartesian product)。

示例:

A[np.ix_(rows, cols)]

輸出:

 [ 9 11]]

cols = [1,3]

np.ix_() 會構造可廣播的索引結構,從而生成所有組合:

(2,1)  (2,3)

因此得到對應子矩陣:

 [ 9 11]]

當需要從數組中提取多行多列構成的子矩陣時,通常使用 np.ix_() 來構造索引。

四、索引變換與坐標轉換

unravel_index()

將一維索引轉換為多維坐標。

numpy.unravel_index(indices, shape)

參數說明:

? indices:一維索引

? shape:數組形狀

示例:

# (1, 2)

說明:默認使用 C-order(行優先順序)。

在形狀為 (2,3) 的數組中,一維索引 5 對應位置為 (1,2)。

ravel_multi_index()

將多維索引轉換為一維索引。

numpy.ravel_multi_index(multi_index, dims)

參數說明:

? multi_index:多維索引

? dims:數組維度

示例:

# 5

說明:將二維索引轉換為線性索引。

五、軸與維度操作

diagonal()

返回數組的對角線元素。

numpy.diagonal(a, offset=0, axis1=0, axis2=1)

參數說明:

? a:輸入數組

? offset:對角線偏移

? axis1:第一個軸

? axis2:第二個軸

示例:

# [1 4]

說明:返回矩陣主對角線元素。

trace()

計算數組主對角線元素之和。

numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None)

參數說明:

? a:輸入數組。通常為二維數組(矩陣),但也可以是高維數組

? offset:對角線偏移量。默認值為 0

offset < 0:主對角線之下的對角線

? axis1:用于確定對角線的第一個軸,默認值為 0

? axis2:用于確定對角線的第二個軸,默認值為 1

對于高維數組,trace() 會在 axis1 與 axis2 指定的兩個軸之間計算對角線,并對這些對角線元素求和。

? dtype:指定計算結果的數據類型。如果不指定,則使用數組元素的數據類型進行計算

示例 1:

# 5

說明:相當于 1 + 4。

示例:偏移對角線

# 8

說明:offset = 1 表示主對角線之上的一條對角線:2 + 6 = 8。

小結

NumPy 提供了一組用于數組索引與元素選擇的函數,可在多維數組中高效定位、篩選和提取數據。其中,argmax()、argmin()、argwhere() 與 nonzero() 用于獲取元素的位置索引;where() 用于條件篩選與元素選擇;take()、choose()、take_along_axis()、compress() 與 extract() 用于根據索引或條件提取數組元素;unravel_index() 與 ravel_multi_index() 用于在線性索引與多維坐標之間進行轉換;diagonal() 與 trace() 則用于訪問與計算數組的對角線元素。這些函數共同構成了 NumPy 數組數據訪問與選擇的重要工具。

點贊有美意,贊賞是鼓勵

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

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-05-08 18:11:21
韓國一美女因晨跑健身“走紅”,身材緊致太吸睛,網友:太漂亮了

韓國一美女因晨跑健身“走紅”,身材緊致太吸睛,網友:太漂亮了

馬拉松跑步健身
2026-04-19 06:30:13
俄羅斯生物物理學家花了30年時間證明,用紅光照射細胞能翻倍

俄羅斯生物物理學家花了30年時間證明,用紅光照射細胞能翻倍

歲月有情1314
2026-06-07 17:45:29
丁克22年丈夫猝逝,她守著舊房不搬家:女人最后悔的,不是沒孩子

丁克22年丈夫猝逝,她守著舊房不搬家:女人最后悔的,不是沒孩子

飄飄然的娛樂匯
2026-06-12 19:30:08
“清淡飲食”正在毀掉中老年人的血管!我國近20%的老年人患有肌少癥,不吃肉,血管反而越來越脆

“清淡飲食”正在毀掉中老年人的血管!我國近20%的老年人患有肌少癥,不吃肉,血管反而越來越脆

消化石醫生
2026-06-05 21:28:28
3-1,3-2,1-3亞洲冠軍輸了,中國隊兩連敗難求一勝,世界第九2-3

3-1,3-2,1-3亞洲冠軍輸了,中國隊兩連敗難求一勝,世界第九2-3

銳評利物浦
2026-06-12 08:54:35
日本人動手了!中國東巡臺島第3天,先后兩次遭日本飛機抵近偵察

日本人動手了!中國東巡臺島第3天,先后兩次遭日本飛機抵近偵察

阿龍聊軍事
2026-06-10 09:02:10
長沙一男子傍晚突然沖進湘江!附近夜宵商家反應迅速,用甲魚槍鉤住男子衣服拖上岸

長沙一男子傍晚突然沖進湘江!附近夜宵商家反應迅速,用甲魚槍鉤住男子衣服拖上岸

瀟湘晨報
2026-06-12 19:22:11
連燒30小時!百億航母可能成廢鐵?5700人被困,福建艦對比明顯

連燒30小時!百億航母可能成廢鐵?5700人被困,福建艦對比明顯

興史興談
2026-04-05 09:13:03
釋永信與師姐釋永梅合影:20多年前,她胸前掛著當時最時尚手機

釋永信與師姐釋永梅合影:20多年前,她胸前掛著當時最時尚手機

離離言幾許
2026-06-03 22:53:39
新一輪機關事業單位大清理 , 這6種人員將被辭退 , 多地重拳出擊

新一輪機關事業單位大清理 , 這6種人員將被辭退 , 多地重拳出擊

細說職場
2026-06-12 13:54:35
“衣有五不穿,穿了人不順”,5種衣服要少穿,記住別犯了迷糊!

“衣有五不穿,穿了人不順”,5種衣服要少穿,記住別犯了迷糊!

小談食刻美食
2026-05-18 17:45:43
以色列至今都不敢相信,一場戰爭竟然打掉了自己一個多世紀的國運

以色列至今都不敢相信,一場戰爭竟然打掉了自己一個多世紀的國運

一網打盡全球焦點
2026-05-19 17:29:36
排名158位!鄭欽文手握15項代言年入1.6億 博主建議:別接廣告了

排名158位!鄭欽文手握15項代言年入1.6億 博主建議:別接廣告了

風過鄉
2026-06-10 07:27:32
今夜!存儲芯片,集體暴漲

今夜!存儲芯片,集體暴漲

中國基金報
2026-06-13 00:03:47
韓國妻子孕晚期意外發現溫柔丈夫聊天對話:"她簡直像頭豬""借口懷孕只知道吃!"情緒徹底崩潰...

韓國妻子孕晚期意外發現溫柔丈夫聊天對話:"她簡直像頭豬""借口懷孕只知道吃!"情緒徹底崩潰...

英國那些事兒
2026-06-11 23:03:25
局勢緊張之際,中國突然亮出2大軍武,各個戰力超群,釋放啥信號

局勢緊張之際,中國突然亮出2大軍武,各個戰力超群,釋放啥信號

雅兒姐姐愛侃劇
2026-06-11 18:47:33
英國成伊斯蘭國家了?斯塔默宣布:穆斯林是現代英國的標志性面孔

英國成伊斯蘭國家了?斯塔默宣布:穆斯林是現代英國的標志性面孔

步論天下事
2026-05-10 10:36:05
曾經落地近90萬的神車!路虎攬勝極光L跌至17.98萬

曾經落地近90萬的神車!路虎攬勝極光L跌至17.98萬

中國能源網
2026-06-11 10:58:56
歷史雜記|謝覺哉談“潘漢年案”

歷史雜記|謝覺哉談“潘漢年案”

老正時空
2026-06-06 16:04:04
2026-06-13 04:24:49
MediaTea
MediaTea
專業的數字媒體、新媒體技術
1888文章數 80關注度
往期回顧 全部

科技要聞

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

頭條要聞

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

頭條要聞

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

體育要聞

歐洲恐韓?肉德維德?

娛樂要聞

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

財經要聞

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

汽車要聞

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

態度原創

家居
時尚
數碼
教育
軍事航空

家居要聞

空間微調 移形換境

夏天別總穿一身白或一身黑!試試一半彩色、一半基礎色,高級亮眼

數碼要聞

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

教育要聞

家長成了“瘋女人”,被女兒作業搞崩潰,網友:太真實

軍事要聞

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

無障礙瀏覽 進入關懷版