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]]

输出结果是以递增列的方式进行连接。