Python NumPy numpy.concatenate()函式

Minahil Noor 2023年1月30日
  1. numpy.concatenate() 語法
  2. 示例程式碼:numpy.concatenate()
  3. 示例程式碼:numpy.concatenate() 傳遞多維陣列
  4. 示例程式碼:numpy.concatenate() 傳遞多維陣列,引數為 axis
Python NumPy numpy.concatenate()函式

Python NumPy numpy.concatenate() 函式在一個指定的軸上連線多個陣列。它接受一個陣列序列作為引數,並將它們連線成一陣列。

numpy.concatenate() 語法

numpy.concatenate((a1, a2, ...), axis=0, out=None)

引數

a1,a2,... 這是一個類似陣列結構的序列。它是要連線的輸入陣列的序列。輸入的陣列應該具有相同的形狀。
axis 它是一個整數。它代表函式將連線陣列的軸。它的預設值是 0,意味著陣列的連線將是以行為單位的。如果它是 1,則是列式連線。
out 它是一個 N 維的陣列。它顯示連線陣列的最終形狀。如果提供了它,那麼它的形狀必須與輸出的連線陣列相匹配。

返回值

它返回一個 N 維的陣列。這個陣列顯示了輸入的陣列的連線。

示例程式碼:numpy.concatenate()

我們先用 numpy.concatenate 函式連線一個一維的陣列。

import numpy as np

a1 = np.array([45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78])
print("First array:")
print(a1)
a2 = np.array([89, 34, 56, 87, 90])
print("Second array:")
print(a2)
outarray = np.concatenate([a1, a2])
print("Concatenated array:")
print(outarray)

輸出:

First array:
[45 12 65 78  9 34 12 11  2 65 78 82 28 78]
Second array:
[89 34 56 87 90]
Concatenated array:
[45 12 65 78  9 34 12 11  2 65 78 82 28 78 89 34 56 87 90]

函式返回了一個連線後的陣列。如果你想讓輸出的陣列從第二個陣列開始,只需先傳遞第二個陣列作為引數。

示例程式碼:numpy.concatenate() 傳遞多維陣列

現在我們將傳遞一個多維的陣列。

import numpy as np

a1 = np.array([[11, 12], [15, 10]])
print("First array:")
print(a1)
a2 = np.array([[10, 13], [15, 8]])
print("Second array:")
print(a2)
a3 = np.array([[11, 5], [34, 78]])
print("Third array:")
print(a3)
outarray = np.concatenate((a1, a2, a3))
print("Concatenated array:")
print(outarray)

輸出:

First array:
[[11 12]
 [15 10]]
Second array:
[[10 13]
 [15  8]]
Third array:
[[11  5]
 [34 78]]
Concatenated array:
[[11 12]
 [15 10]
 [10 13]
 [15  8]
 [11  5]
 [34 78]]

輸出顯示輸入的陣列現在被連線在一起形成一個陣列。

示例程式碼:numpy.concatenate() 傳遞多維陣列,引數為 axis

現在,我們將傳遞一串多維的陣列作為引數,axis=0,得到的陣列將以行為單位連線。

import numpy as np

a1 = np.array([[11, 12, 5], [15, 6, 10]])
print("First array:")
print(a1)
a2 = np.array([[10, 8, 13], [12, 15, 8]])
print("Second array:")
print(a2)
a3 = np.array([[11, 12, 5], [34, 78, 90]])
print("Third array:")
print(a3)
outarray = np.concatenate((a1, a2, a3))
print("Concatenated array:")
print(outarray)

輸出:

First array:
[[11 12  5]
 [15  6 10]]
Second array:
[[10  8 13]
 [12 15  8]]
Third array:
[[11 12  5]
 [34 78 90]]
Concatenated array:
[[11 12  5]
 [15  6 10]
 [10  8 13]
 [12 15  8]
 [11 12  5]
 [34 78 90]]

請注意,輸出的陣列以遞增行的方式顯示陣列的連線,因為 axis 的預設值是 0。

現在我們將 axis 的值設定為 1。

import numpy as np

a1 = np.array([[11, 12, 5], [15, 6, 10]])
print("First array:")
print(a1)
a2 = np.array([[10, 8, 13], [12, 15, 8]])
print("Second array:")
print(a2)
a3 = np.array([[11, 12, 5], [34, 78, 90]])
print("Third array:")
print(a3)
outarray = np.concatenate((a1, a2, a3), axis=1)
print("Concatenated array:")
print(outarray)

輸出:

First array:
[[11 12  5]
 [15  6 10]]
Second array:
[[10  8 13]
 [12 15  8]]
Third array:
[[11 12  5]
 [34 78 90]]
Concatenated array:
[[11 12  5 10  8 13 11 12  5]
 [15  6 10 12 15  8 34 78 90]]

輸出結果是以遞增列的方式進行連線。