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

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

NumPy 函數手冊:數組結構調整

0
分享至

在數據分析、科學計算以及機器學習中,除了對數組元素進行讀寫操作外,還經常需要對數組的結構(如 形狀 shape、維度 dimension 等)進行調整。

NumPy 提供了一組用于數組結構調整的函數,這些函數通常不改變數據本身,而是改變其組織方式(視圖或副本)。

按照功能劃分,NumPy 中常見的調整數組結構的函數通??梢苑譃橐韵聨最悾?/p>

(1)形狀調整

(2)數組展開

(3)維度變化

(4)維度保證

(5)軸變換

一、形狀調整

reshape()

在不改變數據的前提下,改變數組的形狀。返回重構后的數組(通常為視圖)。

numpy.reshape(a, newshape, order='C')

ndarray.reshape(newshape, order='C')

numpy.reshape() 是面向通用輸入的函數接口,而 ndarray.reshape() 是面向數組對象的方法接口;兩者在行為上等價,但在調用方式與輸入類型支持上有所不同。

參數說明:

? a:輸入數組

? newshape:目標形狀(整數或元組)

? order:元素讀取順序

'F':按列優先(Fortran-order),首維變化最快

示例 1:

b = a.reshape((2,3))

輸出:

 [4 5 6]]

? 元素總數必須保持一致,即新的 shape 的維度長度之積應等于元素總數

? reshape() 盡量返回視圖。當數組在內存中不滿足連續性要求時,reshape() 可能返回副本而非視圖

示例 2:支持 -1 自動推導維度

b = a.reshape(3, -1)

輸出:

 [ 8  9 10 11]]

-1 的作用是讓 NumPy 自動計算該維度大小。只能出現一次。

resize()

改變數組形狀,并在必要時填充或截斷數據。

numpy.resize(a, new_shape)

參數說明:

? a:輸入數組

? new_shape:目標形狀(不足時循環填充)

返回值:返回新數組(副本)。

示例:

b = np.resize(a,(3,4))

輸出:

 [2 3 4 5]]

與 reshape() 不同,必要時改變元素數量。

特別說明:

ndarray.resize(new_shape) 會原地修改數組,并可能改變數據內容(截斷或重復填充)。

二、數組展平

ravel()

將數組展開為一維數組。返回一維數組(優先返回視圖,但在某些情況下仍可能返回副本)。

numpy.ravel(a, order='C')

參數說明:

? a:輸入數組

? order:展開順序('C'、'F'、'A'、'K')

'K':嚴格按照內存中的實際存儲順序讀取元素

示例 1:

# [1 2 3 4 5 6]

ravel() 優先返回視圖(view),修改結果可能會影響原數組(取決于內存連續性):

print(a)

輸出:

  [  4   5   6]]

示例 2:不同 order

# [1 3 2 4]

flatten()

將數組展開為一維數組(副本)。

ndarray.flatten(order='C')

參數說明(同 ravel)。

示例:

#  [4 5 6]]

ravel() 優先返回視圖,flatten() 始終返回副本。

三、維度變化

squeeze()

刪除長度為 1 的維度。

numpy.squeeze(a, axis=None)

參數說明:

? a:輸入數組

? axis:指定要刪除的軸(必須長度為 1)

示例 1:

# (3,)

示例 2:指定軸

# (1, 3)

squeeze() 只能刪除長度為 1 的軸。若指定 axis 且該軸長度 ≠ 1,會報錯。

expand_dims()

在指定位置增加一個維度。

numpy.expand_dims(a, axis)

參數說明:

? a:輸入數組

? axis:插入新軸的位置(可為負數)

示例 1:

# (3, 1)

示例 2:使用負軸

# (3, 1)

squeeze() 用于降維,即,去掉長度為 1 的維度。

expand_dims() 用于升維,即,插入長度為 1 的新維度。

四、維度保證

這些函數常用于函數接口輸入統一。

atleast_1d()

確保數組至少為一維。返回轉換后的數組(或數組列表)。

numpy.atleast_1d(*arys)

參數說明:

? *arys:一個或多個輸入標量或數組

示例:

# (1,)

atleast_2d()

確保數組至少為二維。返回轉換后的數組(或數組列表)。

numpy.atleast_2d(*arys)

參數說明:

? *arys:一個或多個輸入標量或數組

示例 1:

# (1, 3)

示例 2:多輸入多輸出

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

atleast_3d()

確保數組至少為三維。返回轉換后的數組(或數組列表)。

numpy.atleast_3d(*arys)

參數說明:

? *arys:一個或多個輸入標量或數組

示例:

# (1, 3, 1)

對于上面三個函數,都遵循以下原則:

? 標量會被“提升”為數組

? 已有維度不會被壓縮

五、軸變換

transpose()

重新排列數組的軸順序。返回軸重排后的數組(通常為視圖)。

numpy.transpose(a, axes=None)

或者:

ndarray.transpose(*axes)

參數說明:

? a:輸入數組

? axes:新的軸順序(元組)

示例 1:默認轉置

b = np.transpose(a)

輸出:

 [3 6]]

示例 2:指定軸順序(高維)

# (3, 2, 4)

(1, 0, 2) 表示:

原 axis 2 → 新 axis 2(不變)

特別說明:

數組屬性T是 transpose() 的語法糖形式。

a.T 等價于:

np.transpose(a)

對于二維數組而言,a.T 就是行列互換,返回結果通常也為視圖。

對于高維數組,a.T 等價于將軸順序完全反轉:

a.T ≡ np.transpose(a, axes[::-1])

swapaxes()

交換兩個軸。

numpy.swapaxes(a, axis1, axis2)

參數說明:

? axis1, axis2:需要交換的兩個軸

示例:

# (3, 2, 4)

swapaxes() 只交換兩個軸,可看作是 transpose() 的特例。

moveaxis()

將指定軸移動到新位置。

numpy.moveaxis(a, source, destination)

參數說明:

? source:原軸位置

? destination:目標位置

示例 1:

# (3, 4, 2)

示例 2:多軸移動

# (4, 3, 2)

moveaxis() 支持多軸同時移動,語義清晰,推薦使用。

rollaxis()

將某個軸滾動到指定位置。

numpy.rollaxis(a, axis, start=0)

參數說明:

? axis:要移動的軸

? start:目標位置

示例:

# (4, 2, 3)

rollaxis() 本質上等價于 moveaxis(axis, start),它已逐漸被替代,不推薦新代碼使用。

小結

NumPy 提供了一套完整的數組結構調整機制,包括形狀重塑(reshape、resize)、數組展開(ravel、flatten)、維度增減(squeeze、expand_dims)、維度規范化(atleast_*)以及軸變換(transpose、swapaxes、moveaxis)。需要特別注意,不同函數在是否返回視圖或副本、是否改變原數組以及內存連續性要求方面存在差異,應根據計算需求合理選擇,以兼顧性能與語義清晰性。


點贊有美意,贊賞是鼓勵

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

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 19:44:05
確認!巴塞羅那啟動對弗洛倫蒂諾法律行動

確認!巴塞羅那啟動對弗洛倫蒂諾法律行動

日常碎碎念啊
2026-06-13 00:18:42
杰拉德曝伊斯坦布爾奇跡更衣室真相

杰拉德曝伊斯坦布爾奇跡更衣室真相

體壇周報
2026-06-12 21:13:42
網傳南通“橋掉下來了”消息不實 當地通報:系裝載混凝土預制箱梁的半掛車發生事故

網傳南通“橋掉下來了”消息不實 當地通報:系裝載混凝土預制箱梁的半掛車發生事故

紅星新聞
2026-06-12 20:42:09
辭職也難逃追責!西安女教師配合外籍博主博流量,師德底線失守

辭職也難逃追責!西安女教師配合外籍博主博流量,師德底線失守

放開他讓wo來
2026-06-12 10:48:34
告訴你一個殘酷的真相:父母存的錢,存的其實是孩子的選擇權

告訴你一個殘酷的真相:父母存的錢,存的其實是孩子的選擇權

大熊歡樂坊
2026-06-01 06:24:25
曝格林愿降薪讓步助勇士追詹姆斯

曝格林愿降薪讓步助勇士追詹姆斯

體壇周報
2026-06-13 03:26:12
忠心員工捐髓救老板一命,老板康復后卻將她辭退,報應來得快

忠心員工捐髓救老板一命,老板康復后卻將她辭退,報應來得快

懸案解密檔案
2025-05-14 14:16:08
28歲巔峰退出國家隊?趙繼偉克星宣布退役:男籃反倒成最大受益者

28歲巔峰退出國家隊?趙繼偉克星宣布退役:男籃反倒成最大受益者

籃球快餐車
2026-06-12 05:36:36
世界首富押注的火箭發動機:折騰了60年,終于變成了流水線產品

世界首富押注的火箭發動機:折騰了60年,終于變成了流水線產品

平流層散步者
2026-05-27 08:04:47
寶馬也要出“大G”?寶馬全新硬派越野車假想圖曝光,對標奔馳G級

寶馬也要出“大G”?寶馬全新硬派越野車假想圖曝光,對標奔馳G級

小怪吃美食
2026-06-13 02:55:54
外資控制蒙古銅礦,340萬人淪為性旅游后花園

外資控制蒙古銅礦,340萬人淪為性旅游后花園

清歡百味
2026-06-11 18:45:10
“幾十年的血沒清洗過,您覺得干凈嗎?”

“幾十年的血沒清洗過,您覺得干凈嗎?”

中國新聞周刊
2026-06-11 07:22:08
高考719分奪得全省第一,如今在清華王牌專業讀大一,成功靠2個字

高考719分奪得全省第一,如今在清華王牌專業讀大一,成功靠2個字

星娛叨叨社
2026-06-09 14:55:26
值得珍藏:AI產業鏈+光存電芯+玻璃基板+貴金屬+光通信+能源龍頭

值得珍藏:AI產業鏈+光存電芯+玻璃基板+貴金屬+光通信+能源龍頭

粵語音樂噴泉
2026-06-11 18:32:26
否決金球先生?皇馬36小時閃簽B席,一場靜默的戰術革命!

否決金球先生?皇馬36小時閃簽B席,一場靜默的戰術革命!

落夜足球
2026-06-12 13:49:58
我們等了55年的一句話,終于正式公開了!

我們等了55年的一句話,終于正式公開了!

起喜電影
2026-06-08 10:49:23
老領導落馬前塞給我一個藍布包,叮囑我辭職回鄉躲五年才安全

老領導落馬前塞給我一個藍布包,叮囑我辭職回鄉躲五年才安全

曉艾故事匯
2025-12-12 08:10:43
賴昌星的“紅樓”有多厲害?官員坦白:享受全套服務,沒人能把持

賴昌星的“紅樓”有多厲害?官員坦白:享受全套服務,沒人能把持

流史歲月
2026-06-12 11:04:38
646億財務造假終被抓,兒子投資來源不明,實業報國六年騙局

646億財務造假終被抓,兒子投資來源不明,實業報國六年騙局

玲兒愛唱歌
2026-05-07 05:07:45
2026-06-13 04:15:00
MediaTea
MediaTea
專業的數字媒體、新媒體技術
1888文章數 80關注度
往期回顧 全部

科技要聞

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

頭條要聞

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

頭條要聞

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

體育要聞

歐洲恐韓?肉德維德?

娛樂要聞

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

財經要聞

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

汽車要聞

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

態度原創

家居
教育
旅游
藝術
數碼

家居要聞

空間微調 移形換境

教育要聞

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

旅游要聞

印度有錢人真多酷暑辦理旅游簽證!不是有錢任性,是熱到活不下去

藝術要聞

砸了640億,再賠160億!沙特“The Line”項目徹底涼了?

數碼要聞

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

無障礙瀏覽 進入關懷版