Python NumPy numpy.concatenate()函式

Minahil Noor 2023年1月30日 2020年11月7日
  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]]

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