NumPy的hstack函數(shù)詳細(xì)教程
`np.hstack()`是NumPy中用于水平(按列)堆疊數(shù)組的函數(shù)(這意味著它將數(shù)組在第二個(gè)軸(即列方向)上堆疊,但是要求除第二個(gè)軸外其他軸的大小必須相同)。下面通過詳細(xì)的解釋和示例來學(xué)習(xí)這個(gè)函數(shù)。
1. 函數(shù)基本語法
numpy.hstack(tup)
參數(shù):
- `tup`:包含要堆疊數(shù)組的序列(通常是元組或列表),所有數(shù)組必須具有相同的形狀(除了第二個(gè)軸,即列方向)
返回值:
- 堆疊后的數(shù)組
2. 一維數(shù)組的堆疊
一維數(shù)組的水平堆疊會(huì)創(chuàng)建一個(gè)更長的一維數(shù)組:
import numpy as np
# 一維數(shù)組示例
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print("a:", a)
print("b:", b)
print("a.shape:", a.shape)
print("b.shape:", b.shape)
result = np.hstack((a, b))
print("hstack result:", result)
print("result.shape:", result.shape)輸出:
a: [1 2 3]
b: [4 5 6]
a.shape: (3,)
b.shape: (3,)
hstack result: [1 2 3 4 5 6]
result.shape: (6,)
3. 二維數(shù)組的堆疊
二維數(shù)組的水平堆疊會(huì)增加列數(shù):
# 二維數(shù)組示例
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print("a:")
print(a)
print("b:")
print(b)
print("a.shape:", a.shape)
print("b.shape:", b.shape)
result = np.hstack((a, b))
print("hstack result:")
print(result)
print("result.shape:", result.shape)輸出:
a:
[[1 2]
[3 4]]
b:
[[5 6]
[7 8]]
a.shape: (2, 2)
b.shape: (2, 2)
hstack result:
[[1 2 5 6]
[3 4 7 8]]
result.shape: (2, 4)
4. 三維數(shù)組的堆疊
對(duì)于三維數(shù)組,`hstack`會(huì)在第二個(gè)維度(列)上堆疊:
# 三維數(shù)組示例
a = np.random.randn(2, 3, 4)
b = np.random.randn(2, 2, 4)
print("a.shape:", a.shape)
print("b.shape:", b.shape)
result = np.hstack((a, b))
print("result.shape:", result.shape)輸出:
a.shape: (2, 3, 4)
b.shape: (2, 2, 4)
result.shape: (2, 5, 4)
5. 注意事項(xiàng)
1. 形狀要求:所有輸入數(shù)組在除了第二個(gè)軸以外的所有軸上必須具有相同的形狀
2. 錯(cuò)誤示例:
# 這會(huì)報(bào)錯(cuò),因?yàn)樾袛?shù)不同 a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6, 7]]) # 形狀不匹配 # result = np.hstack((a, b)) # ValueError
7. 與其他堆疊函數(shù)比較
- `vstack()`:垂直堆疊(按行)
- `dstack()`:深度堆疊(沿第三個(gè)軸)
- `concatenate()`:通用連接函數(shù),可以指定軸```python
比較不同堆疊方法
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print("hstack (水平):")
print(np.hstack((a, b)))
print("vstack (垂直):")
print(np.vstack((a, b)))
print("dstack (深度):")
print(np.dstack((a, b)))輸出
hstack (水平):
[[1 2 5 6]
[3 4 7 8]]
vstack (垂直):
[[1 2]
[3 4]
[5 6]
[7 8]]
dstack (深度):
[[[1 5]
[2 6]][[3 7]
[4 8]]]
8. 實(shí)際應(yīng)用示例
# 合并特征矩陣
features1 = np.random.randn(100, 5) # 100個(gè)樣本,5個(gè)特征
features2 = np.random.randn(100, 3) # 100個(gè)樣本,3個(gè)特征
combined_features = np.hstack((features1, features2))
print("原始特征形狀:", features1.shape, features2.shape)
print("合并后特征形狀:", combined_features.shape)通過這個(gè)教程,你應(yīng)該能夠理解`hstack`函數(shù)的工作原理和適用場(chǎng)景。記住關(guān)鍵點(diǎn)是:**水平堆疊會(huì)增加數(shù)組的列數(shù)(第二個(gè)維度)**,并且所有輸入數(shù)組在除了第二個(gè)維度外的其他維度上必須具有相同的形狀。
到此這篇關(guān)于NumPy的hstack函數(shù)詳細(xì)教程的文章就介紹到這了,更多相關(guān)NumPy hstack函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Numpy中vstack()和hstack()的使用方式
- Numpy中np.vstack()?和?np.hstack()?的實(shí)現(xiàn)
- numpy中hstack vstack stack concatenate函數(shù)示例詳解
- numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)
- numpy中np.dstack()、np.hstack()、np.vstack()用法
- numpy數(shù)組做圖片拼接的實(shí)現(xiàn)(concatenate、vstack、hstack)
- Numpy中stack(),hstack(),vstack()函數(shù)用法介紹及實(shí)例
- Python numpy實(shí)現(xiàn)數(shù)組合并實(shí)例(vstack,hstack)
相關(guān)文章
Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件示例
這篇文章主要介紹了Python實(shí)現(xiàn)查詢某個(gè)目錄下修改時(shí)間最新的文件,涉及Python使用os與shutil模塊針對(duì)文件的遍歷、屬性獲取、讀寫等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
對(duì)Python 檢查文件名是否規(guī)范的實(shí)例詳解
今天小編就為大家分享一篇對(duì)Python 檢查文件名是否規(guī)范的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python實(shí)現(xiàn)將多個(gè)空格換為一個(gè)空格.md的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)將多個(gè)空格換為一個(gè)空格.md的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
使用Python實(shí)現(xiàn)對(duì)Excel文件加密與保護(hù)
在日常工作中,Excel 文件經(jīng)常存儲(chǔ)敏感信息,本文介紹如何利用 Spire.XLS for Python 對(duì) Excel 文件進(jìn)行加密與保護(hù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-10-10
Python利用FlashText算法實(shí)現(xiàn)替換字符串
FlashText算法是由?Vikash?Singh?于2017年發(fā)表的大規(guī)模關(guān)鍵詞替換算法,比正則表達(dá)式替換快M倍以上,這個(gè)M是需要替換的關(guān)鍵詞數(shù)量,關(guān)鍵詞越多,F(xiàn)lashText算法的優(yōu)勢(shì)就越明顯。本文將詳細(xì)這一算法,需要的可以參考一下2022-03-03

