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

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

NumPy 函數手冊:數組拼接與堆疊

0
分享至

在數據分析、科學計算以及機器學習中,經常需要將多個數組組合為一個整體。例如:

? 合并多個數據批次

? 按列拼接特征

? 按行堆疊樣本

? 構造高維張量或分塊矩陣

NumPy 提供了一組用于數組拼接與堆疊的函數。需要注意的是,這些操作均返回新數組,不會原地修改輸入數組。

按照功能劃分,NumPy 中常見的數組拼接與堆疊函數通常可以分為以下幾類:

(1)沿已有軸拼接

(2)沿新軸堆疊

(3)分塊拼接(結構拼接)

(4)按方向組織的便捷拼接接口

(5)列向量/行方向便捷接口

(6)簡化拼接接口

一、沿已有軸拼接

concatenate()

沿指定軸將多個數組連接起來。返回拼接后的新數組。

numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting='same_kind')

參數說明:

? (a1, a2, ...):待拼接的數組序列(形狀需兼容)

? axis:拼接軸(默認 0)

? out:可選輸出數組

? dtype:目標數據類型

? casting:類型轉換規則

'unsafe':允許任意轉換(可能丟失信息)

示例 1:按行拼接

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

輸出:

 [5 6]]

示例 2:按列拼接

np.concatenate((a, a), axis=1)

輸出:

 [3 4 3 4]]

示例 3:展平拼接(axis=None)

np.concatenate((a, b), axis=None)

輸出:

[1 2 3 4 5 6]

當 axis=None 時,所有輸入數組會先被展平成一維數組,再進行拼接。

特別說明:

所有拼接函數的基礎形式是:除拼接軸外,其余維度必須一致。

二、沿新軸堆疊

stack()

在新軸上堆疊數組,從而構造更高維結構。返回堆疊后的新數組。

numpy.stack(arrays, axis=0)

參數說明:

? arrays:數組序列(形狀必須完全一致)

? axis:新軸的位置

示例 1:

np.stack((a, b), axis=0)    # 堆疊后數組的形狀為 (2, 3)

輸出:

 [4 5 6]]

axis=0 表示在第 0 軸插入新維度。

示例 2:

np.stack((a, b), axis=1)  # 堆疊后數組的形狀為 (3, 2, 1)

輸出:

  [6]]]

axis=1 表示在第 1 軸插入新維度。

stack() 新增維度的尺寸與輸入數組的個數一致。

三、分塊拼接(結構拼接)

block()

按照嵌套列表結構,將多個數組拼接為一個整體數組。返回拼接后的新數組。

numpy.block(arrays)

參數說明:

? arrays:嵌套列表(list of lists),用于描述拼接結構

示例 1:二維塊拼接

          [C, A]])

輸出:

 [5 6 1 2]]

該結構等價于分塊矩陣:

[C  A]

示例 2:構造塊對角矩陣

          [Z, I]])

輸出:

 [0. 0. 0. 1.]]

? 同一“行塊”中的數組必須在行數上兼容

? 同一“列塊”中的數組必須在列數上兼容

block() 本質上是對 concatenate() 的遞歸封裝。

四、按方向組織的便捷拼接接口

以下函數是對 concatenate() 的語義封裝。

vstack()

按行方向拼接數組(axis=0)。

numpy.vstack(tup)

參數說明:

? tup:數組序列(由多個數組對象按順序組成的可迭代容器,可以是元組、列表或其它可迭代對象)

示例 1:

np.vstack((a, b))        # 拼接后數組的形狀為 (3, 2)

輸出:

 [5 6]]

說明:一維數組會先轉為二維行向量。

示例 2:

np.vstack((a, b))         # 拼接后數組的形狀為 (3, 3)

輸出:

 [7 8 9]]

vstack() 會先將一維輸入視為二維行向量,再沿第 0 軸拼接;對二維數組而言,可理解為等價于 concatenate(..., axis=0)。

hstack()

按列方向拼接數組。

numpy.hstack(tup)

示例:

np.hstack((a, b))       # 拼接后數組的形狀為 (2, 3)

輸出:

 [3 4 6]]

對二維及更高維數組,hstack() 等價于沿 axis=1 調用 concatenate();對于一維數組,它等價于沿 axis=0 進行拼接。

dstack()

沿第三軸拼接數組。

numpy.dstack(tup)

示例:

d = np.dstack((a, b, c))             # d.shape 為 (2, 4, 3)

輸出:

  [  8  80 800]]]

dstack() 會先將輸入調整為至少三維,再沿第三個軸(axis=2)進行拼接。對于二維輸入,可理解為在結果中形成“深度”方向的組合。

五、列向量/行方向便捷接口

column_stack()

按列堆疊數組。

numpy.column_stack(tup)

參數說明:

? tup:數組序列

示例 1:

np.column_stack((a, b))

輸出:

 [3 6]]

說明:一維數組會被視為列向量。

示例 2:

np.column_stack((a, b))

輸出:

 [3 6]]

column_stack() 要求數組的第一維長度一致。對于二維輸入,它的效果可理解為按列執行 hstack();對于一維輸入,會先將每個輸入視為列向量,再進行橫向拼接。

row_stack()

按行堆疊數組。

numpy.row_stack(tup)

示例:

np.row_stack((a, b))

輸出:

 [4 5 6]]

row_stack() 的行為與 vstack() 一致,通常可視為其等價接口。在實際使用中,vstack() 更常見。

六、簡化拼接接口

append()

在數組末尾追加元素。總是返回數組副本(copy)。

numpy.append(arr, values, axis=None)

參數說明:

? arr:輸入數組

? values:追加的數據

? axis:拼接軸

示例 1:

np.append(a, 4)

輸出:

[1 2 3 4]

說明:在數組末尾添加新元素。

示例 2:二維數組(指定軸)

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

輸出:

 [5 6]]

示例 3:axis=None(展平后追加)

np.append(a, [5, 6])

輸出:

[1 2 3 4 5 6]

? append() 本質是 concatenate() 的簡化形式

? 當 axis=None 時,會先將數組展平后再拼接

? append() 不會原地擴展原數組,而是返回拼接后的新數組

小結

NumPy 提供了一套完整的數組拼接與堆疊機制,其中 concatenate() 用于沿已有軸拼接,stack() 用于創建新維度,block() 用于構造分塊結構,而 vstack()、hstack()、column_stack() 等函數則提供了更高層的語義封裝。需要特別注意,不同函數在是否新增維度、輸入形狀要求以及一維數組處理方式方面存在差異,在實際應用中應根據數據結構與計算目標合理選擇。


點贊有美意,贊賞是鼓勵

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

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-11 21:24:46
克里斯·韋伯嘲諷馬刺“最傲慢比賽”:學會把球交給庫里式的真核

克里斯·韋伯嘲諷馬刺“最傲慢比賽”:學會把球交給庫里式的真核

賽場名場面
2026-06-13 01:26:38
鵝腿阿姨翻車后續:人被警方帶走,黑料曝光,店關門或將天價賠償

鵝腿阿姨翻車后續:人被警方帶走,黑料曝光,店關門或將天價賠償

阿纂看事
2026-06-11 17:19:53
21.09萬考生!濟南市2026年中考6月13日至15日舉行

21.09萬考生!濟南市2026年中考6月13日至15日舉行

閃電新聞
2026-06-10 12:42:13
曼聯8000萬英鎊鎖定西漢姆中場,歐文:他和梅努將是絕配

曼聯8000萬英鎊鎖定西漢姆中場,歐文:他和梅努將是絕配

樂道足球C
2026-06-12 20:09:05
2026很少踩坑!這3個生肖6月后更會“聚財”,年末存錢更多!

2026很少踩坑!這3個生肖6月后更會“聚財”,年末存錢更多!

毅談生肖
2026-06-08 11:26:54
同濟大學養不起那么多人!傳統工科強校的財務困境這下藏不住了!

同濟大學養不起那么多人!傳統工科強校的財務困境這下藏不住了!

霹靂炮
2026-06-07 23:39:08
【微特稿】特朗普涉伊朗表態“大轉彎” 以總理“猝不及防”

【微特稿】特朗普涉伊朗表態“大轉彎” 以總理“猝不及防”

新華社
2026-06-12 13:33:22
外交部發言人宣布中方對菲律賓國防部長特奧多羅及其親屬實施制裁

外交部發言人宣布中方對菲律賓國防部長特奧多羅及其親屬實施制裁

界面新聞
2026-06-11 20:07:10
鵝腿阿姨用鴨腿翻車成就人大食堂主任:冤屈終于洗白,只賣真鵝腿

鵝腿阿姨用鴨腿翻車成就人大食堂主任:冤屈終于洗白,只賣真鵝腿

蜜桔娛樂
2026-06-11 11:06:32
芯片產能持續趨緊 谷歌選定三星合作生產下一代TPU

芯片產能持續趨緊 谷歌選定三星合作生產下一代TPU

財聯社
2026-06-12 08:46:08
最幸福的老年人,就看這10條,一條10分,算算你能得多少分

最幸福的老年人,就看這10條,一條10分,算算你能得多少分

荷蘭豆愛健康
2026-06-01 19:40:56
靈魂拷問!鵝腿阿姨上熱搜,虎撲網友直呼看不懂

靈魂拷問!鵝腿阿姨上熱搜,虎撲網友直呼看不懂

熱搜摘要官
2026-06-12 01:41:25
趁丈夫洗澡,我用他微信讓婆婆轉八千,她秒轉8萬并留言:傻孩子,我兒子那420萬的婚房早就寫你名了,這錢你拿著零花

趁丈夫洗澡,我用他微信讓婆婆轉八千,她秒轉8萬并留言:傻孩子,我兒子那420萬的婚房早就寫你名了,這錢你拿著零花

LULU生活家
2026-05-25 08:37:59
世界杯:墨西哥VS南非、韓國VS捷克復盤,一針見血

世界杯:墨西哥VS南非、韓國VS捷克復盤,一針見血

雜草體育社
2026-06-12 12:32:06
穆里尼奧將重返皇馬?12年了,伯納烏還在等那個特殊的一個

穆里尼奧將重返皇馬?12年了,伯納烏還在等那個特殊的一個

佳佳說奇事故事
2026-04-19 21:04:53
報復來了,中國緊急踩剎車,特朗普坐鎮白宮戰情室,炸彈落在伊朗

報復來了,中國緊急踩剎車,特朗普坐鎮白宮戰情室,炸彈落在伊朗

阿芒娛樂說
2026-06-12 01:39:46
湖人終于醒了!中鋒問題不解決,走出西部就永遠是奢望

湖人終于醒了!中鋒問題不解決,走出西部就永遠是奢望

奕辰說球
2026-06-12 14:16:25
宋慧喬又帶火了一種時髦新穿法:“白色T恤+花苞裙”,洋氣又高級

宋慧喬又帶火了一種時髦新穿法:“白色T恤+花苞裙”,洋氣又高級

蓓小西
2026-05-25 09:25:37
用它作為動力驅動可達光速的70%,科學家對它的研究才剛開始!

用它作為動力驅動可達光速的70%,科學家對它的研究才剛開始!

宇宙時空
2026-06-11 19:00:13
2026-06-13 02:36:49
MediaTea
MediaTea
專業的數字媒體、新媒體技術
1888文章數 80關注度
往期回顧 全部

科技要聞

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

頭條要聞

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

頭條要聞

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

體育要聞

歐洲恐韓?肉德維德?

娛樂要聞

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

財經要聞

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

汽車要聞

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

態度原創

本地
時尚
健康
游戲
公開課

本地新聞

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

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

老人、小孩、孕婦,吃粽子有啥風險

索尼PS國區運營神了!玩梗《黑袍》:我會玩你的游戲

公開課

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

無障礙瀏覽 進入關懷版