Python中強大的數組操作函數,一行代碼搞定多個數組的合併

一、Python數組基礎

在開始探究Python中的數組操作函數前,有必要簡單了解一下Python中的數組基礎知識。Python中數組也稱為列表(list),可以使用方括號([])定義,其中元素之間使用逗號(,)分隔。

>>> a = [1, 2, 3, 4, 5]
>>> print(a)
[1, 2, 3, 4, 5]

可以使用下標(索引)訪問數組中的元素,Python中的下標是從0開始的。

>>> print(a[0])
1
>>> print(a[4])
5

二、Python中的數組合併方法

如果需要將多個數組合併成一個數組,Python中提供了多種方法。

1、使用「+」符號

可以使用「+」符號將兩個數組合併成一個數組。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a + b
>>> print(c)
[1, 2, 3, 4, 5, 6]

2、使用extend()方法

使用extend()方法可以將一個數組的元素添加到另一個數組中。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a.extend(b)
>>> print(a)
[1, 2, 3, 4, 5, 6]

3、使用*號

可以使用*號將一個數組重複多次來實現多個數組的合併。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = a * 2 + b * 3
>>> print(c)
[1, 2, 3, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6]

4、使用append()方法

使用append()方法只能將一個元素添加到數組的末尾位置,並不能實現多個數組的合併。

三、Python中的高級數組合併函數——numpy.concatenate()

雖然以上方法可以實現多個數組的合併,但是需要使用多行代碼,並且有一些限制,比如只能按照一定的順序合併等等。而在numpy模塊中有一個函數——numpy.concatenate(),可以一行代碼完成多個數組的合併,並且可以自由指定合併的順序。

1、numpy.concatenate()的用法

numpy.concatenate()函數的基本參數如下:

  • arrays: 需要合併的數組,要求至少傳入一個數組。
  • axis: 合併的軸向,默認為0,表示沿着第一個維度(即行)進行合併,如果傳入1則表示沿着第二個維度(即列)進行合併。
  • out: 可選參數,合併後的輸出結果。

下面是numpy.concatenate()函數的使用示例:

>>> import numpy as np
>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6]])
>>> c = np.concatenate((a, b), axis=0)
>>> print(c)
[[1, 2],
 [3, 4],
 [5, 6]]

上面的代碼中,我們使用了numpy模塊中的array()函數創建了兩個二維數組a和b,然後使用numpy.concatenate()函數將它們沿着第一個維度(即行)進行合併,得到了一個三行兩列的二維數組c。

2、numpy.concatenate()更多示例

2.1 沿着不同軸向合併

numpy.concatenate()函數可以沿着不同的軸向進行合併,具體使用如下:

>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6], [7, 8]])
>>> c = np.concatenate((a, b), axis=0)
>>> print(c)
[[1, 2],
 [3, 4],
 [5, 6],
 [7, 8]]
>>> d = np.concatenate((a, b), axis=1)
>>> print(d)
[[1, 2, 5, 6],
 [3, 4, 7, 8]]

上面的代碼中,我們使用了numpy模塊中的array()函數創建了兩個二維數組a和b,然後分別使用numpy.concatenate()函數將它們沿着第一個維度(即行)和第二個維度(即列)進行合併,得到了兩個新的二維數組c和d。

2.2 將多個數組進行合併

numpy.concatenate()函數可以接受多個數組作為參數,將它們合併成一個數組,具體使用如下:

>>> a = np.array([[1, 2], [3, 4]])
>>> b = np.array([[5, 6], [7, 8]])
>>> c = np.array([[9, 10], [11, 12]])
>>> d = np.concatenate((a, b, c), axis=1)
>>> print(d)
[[ 1,  2,  5,  6,  9, 10],
 [ 3,  4,  7,  8, 11, 12]]

上面的代碼中,我們使用了numpy模塊中的array()函數創建了三個二維數組a、b和c,然後使用numpy.concatenate()函數將它們沿着第二個維度(即列)進行合併,得到了一個新的二維數組d。

四、numpy.stack()函數

在numpy模塊中還有一個函數——numpy.stack(),可以將多個數組在某個新軸向上進行堆疊,也可以實現多個數組的合併。

1、numpy.stack()函數的用法

numpy.stack()函數的參數和numpy.concatenate()函數類似,不同的是它可以在新的軸向上進行堆疊。具體使用如下:

>>> a = np.array([1, 2, 3])
>>> b = np.array([4, 5, 6])
>>> c = np.array([7, 8, 9])
>>> d = np.stack((a, b, c), axis=1)
>>> print(d)
[[1, 4, 7],
 [2, 5, 8],
 [3, 6, 9]]

上面的代碼中,我們使用了numpy.stack()函數將三個一維數組a、b和c沿着第二個軸向進行堆疊,得到了一個新的二維數組d。

2、numpy.stack()函數更多示例

2.1 沿着不同軸向堆疊

除了上面的示例外,numpy.stack()函數還可以沿着不同軸向堆疊。具體使用如下:

>>> a = np.array([1, 2, 3])
>>> b = np.array([4, 5, 6])
>>> c = np.array([7, 8, 9])
>>> d = np.stack((a, b, c), axis=0)
>>> print(d)
[[1, 2, 3],
 [4, 5, 6],
 [7, 8, 9]]

上面的代碼中,我們使用了numpy.stack()函數將三個一維數組a、b和c沿着第一個軸向進行堆疊,得到了一個新的二維數組d。

2.2 使用numpy.stack()函數實現多個數組的合併

與numpy.concatenate()函數類似,numpy.stack()函數也可以理解成將多個數組按照一定的方式合併為一個更大的數組。具體使用如下:

>>> a = np.array([1, 2, 3])
>>> b = np.array([4, 5, 6])
>>> c = np.array([7, 8, 9])
>>> d = np.stack((a, b, c))
>>> print(d)
[[1, 2, 3],
 [4, 5, 6],
 [7, 8, 9]]

上面的代碼中,我們使用了numpy.stack()函數將三個一維數組a、b和c進行堆疊,並且沒有指定軸向,默認沿着第一個維度進行堆疊,得到了一個新的二維數組d。

五、總結

Python中數組操作函數可以讓我們在處理多個數組時提高效率和代碼的簡潔程度。使用「+」符號、extend()方法、*號等方法可以實現數組的合併,但是使用時需要注意一些限制。而在numpy模塊中,有numpy.concatenate()和numpy.stack()函數,可以實現更加高效、靈活和多樣化的數組合併操作。

原創文章,作者:IADI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/143555.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IADI的頭像IADI
上一篇 2024-10-22 23:34
下一篇 2024-10-22 23:34

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • 為什麼Python不能編譯?——從多個方面淺析原因和解決方法

    Python作為很多開發人員、數據科學家和計算機學習者的首選編程語言之一,受到了廣泛關注和應用。但與之伴隨的問題之一是Python不能編譯,這給基於編譯的開發和部署方式帶來不少麻煩…

    編程 2025-04-29
  • Python導入數組

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

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

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

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

    編程 2025-04-29

發表回復

登錄後才能評論