hstack—堆棧式數組水平拼接

一、hstack簡介

hstack是NumPy中常用的一個函數,全稱是horizontal stack,它主要用於將多個數組按照水平方向(列方向)進行拼接,生成一個新的數組。

使用hstack之前需要保證所有要拼接的數組的行數必須一致,列數可以不同。


import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
c = np.hstack((a, b))
print(c)

運行結果:


[[ 1  2  3 10 11 12]
 [ 4  5  6 13 14 15]
 [ 7  8  9 16 17 18]]

二、hstack的使用場景

hstack主要應用於數據預處理,比如當我們需要將多個數據源的數據按照列進行拼接的時候,就可以使用hstack。

另外,當我們需要對多個列的數據進行某些操作時,也會使用到hstack。


x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
z = np.array([7, 8, 9])
c = np.hstack((x.reshape(-1, 1), y.reshape(-1, 1), z.reshape(-1, 1)))
print(c)

運行結果:


[[1 4 7]
 [2 5 8]
 [3 6 9]]

上面的代碼中將三個數組按照列進行拼接,組成了一個新的二維數組。

三、hstack與vstack的區別

hstack與vstack的功能類似,不同的是hstack是將多個數組按照進行拼接,而vstack是將多個數組按照進行拼接。

因此,使用hstack時所有要拼接的數組的行數必須一致,而使用vstack時所有要拼接的數組的列數必須一致。

另外,可以使用concatenate函數來實現hstack和vstack的功能,它的第二個參數表示拼接的方向,0表示按照行方向(即vstack),1表示按照列方向(即hstack)。


a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[10, 11, 12], [13, 14, 15], [16, 17, 18]])
c1 = np.concatenate((a, b), axis=0) # 等價於vstack
c2 = np.concatenate((a, b), axis=1) # 等價於hstack
print(c1)
print(c2)

運行結果:


[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]
 [13 14 15]
 [16 17 18]]
[[ 1  2  3 10 11 12]
 [ 4  5  6 13 14 15]
 [ 7  8  9 16 17 18]]

四、hstack函數的注意事項

在使用hstack之前需要注意以下事項:

1、所有要拼接的數組的行數必須一致。

2、數組中的元素類型必須一致,否則會出現類型轉換錯誤。

3、如果數組中有缺失值,拼接後的數組中也會帶有缺失值。

4、盡量避免在Python的使用中使用多個維度組成的列表或者元組,這會影響性能。

五、總結

hstack是一個十分常用的NumPy函數,能夠將多個數組按照列方向進行拼接,生成一個新的數組。使用hstack需要注意一些事項,例如所有要拼接的數組的行數必須一致,數組中的元素類型必須一致,如果有缺失值,拼接後的數組中也會帶有缺失值等。

另外,hstack與vstack是兩個常用的拼接函數,除此之外,還有concatenate函數,能夠實現hstack和vstack的功能,需要特別注意其第二個參數表示拼接的方向。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219831.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 11:01
下一篇 2024-12-09 11:01

相關推薦

  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Python去掉數組的中括弧

    在Python中,被中括弧包裹的數據結構是列表,列表是Python中非常常見的數據類型之一。但是,有些時候我們需要將列表展開成一維的數組,並且去掉中括弧。本文將為大家詳細介紹如何用…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python二維數組對齊輸出

    本文將從多個方面詳細闡述Python二維數組對齊輸出的方法與技巧。 一、格式化輸出 Python中提供了格式化輸出的方法,可以對輸出的字元串進行格式化處理。 names = [‘A…

    編程 2025-04-29
  • Java創建一個有10萬個元素的數組

    本文將從以下方面對Java創建一個有10萬個元素的數組進行詳細闡述: 一、基本介紹 Java是一種面向對象的編程語言,其強大的數組功能可以支持創建大規模的多維數組以及各種複雜的數據…

    編程 2025-04-28
  • Python數組隨機分組用法介紹

    Python數組隨機分組是一個在數據分析與處理中常用的技術,它可以將一個大的數據集分成若干組,以便於進行處理和分析。本文將從多個方面對Python數組隨機分組進行詳細的闡述,包括使…

    編程 2025-04-28
  • Python數組索引位置用法介紹

    Python是一門多用途的編程語言,它有著非常強大的數據處理能力。數組是其中一個非常重要的數據類型之一。Python支持多種方式來操作數組的索引位置,我們可以從以下幾個方面對Pyt…

    編程 2025-04-28
  • Python語言數組從大到小排序符號的用法介紹

    當我們使用Python進行編程的時候,經常需要對數組進行排序從而使數組更加有序,而數組的排序方式有很多,其中從大到小排序符號是一種常見的排序方式。本文將從多個方面對Python語言…

    編程 2025-04-28
  • Python列錶轉numpy數組

    本文將闡述Python中列表如何轉換成numpy數組。在科學計算和數據分析領域中,numpy數組扮演著重要的角色。Python與numpy的無縫結合使得數據操作更加方便和高效。因此…

    編程 2025-04-27

發表回復

登錄後才能評論