NumPy 连接()

NumPy 的 concatenate() 方法沿现有轴连接一系列数组。

示例

import numpy as np

array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[4, 5], [6, 7]])

# join the arrays
concatenatedArray = np.concatenate((array1, array2))
print(concatenatedArray) ''' Output: [[0 1] [2 3] [4 5] [6 7]] '''

concatenate() 语法

concatenate() 的语法是

numpy.concatenate((array1, array2, …), axis, out)

concatenate() 参数

concatenate() 方法接受以下参数

  • (array1, array2, …) - 要连接的数组序列
  • axis (可选)- 定义连接数组的维度
  • out (可选) - 用于存储结果的目标。
  • dtype (可选) - 结果数组的数据类型

注意事项

  • 除连接轴外,所有输入数组的维度必须完全匹配。
  • 最多只能传递 outdtype 参数中的一个。

concatenate() 返回值

concatenate() 方法返回连接后的数组。


示例 1:连接两个数组

import numpy as np

array1 = np.array( [ [1, 2], [3, 4] ] )
array2 = np.array( [[5, 6]] )

# concatenate the arrays along axis 0 concatenatedArray = np.concatenate((array1, array2))
print(concatenatedArray)
# concatenate the arrays along axis 0 concatenatedArray = np.concatenate((array1, array2), axis = 0)
print(concatenatedArray)

输出

[[1 2]
 [3 4]
 [5 6]]

[[1 2]
 [3 4]
 [5 6]]

如果我们不传递 axis 参数,axis 的值默认为 0


示例 2:连接不同维度的两个数组

import numpy as np

array1 = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]])
array2 = np.array([[[10, 11], [12, 13]], [[14, 15], [16, 17]]])

print('Joining the array when axis = 0')

# join the arrays at axis equal to 0 concatenatedArray = np.concatenate((array1, array2), 0) print(concatenatedArray)
print('Joining the array when axis = 1')
# join the array at axis equal to 1 concatenatedArray = np.concatenate((array1, array2), 1) print(concatenatedArray)
print('Joining the array when axis = 2')
# join the array at axis equal to 2 concatenatedArray = np.concatenate((array1, array2), 2) print(concatenatedArray)

输出

Joining the array when axis = 0
[[[ 0  1]
  [ 2  3]]

 [[ 4  5]
  [ 6  7]]

 [[10 11]
  [12 13]]

 [[14 15]
  [16 17]]]

Joining the array when axis = 1
[[[ 0  1]
  [ 2  3]
  [10 11]
  [12 13]]

 [[ 4  5]
  [ 6  7]
  [14 15]
  [16 17]]]

Joining the array when axis = 2
[[[ 0  1 10 11]
  [ 2  3 12 13]]

 [[ 4  5 14 15]
  [ 6  7 16 17]]]

示例 3:连接展平的数组

如果我们传递 None 作为 axis 参数,concatenate() 会展平数组并连接它们。

import numpy as np

array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[10, 11], [12, 13]])

# join the flat arrays concatenatedArray = np.concatenate((array1, array2), None)
print(concatenatedArray)

输出

[ 0 1 2 3 10 11 12 13]

注意:我们也可以使用 numpy.append() 来连接数组。但是,与 numpy.concatenate 不同,numpy.append 会创建带有附加值的新副本,因此效率较低。


示例 4:将现有数组作为连接数组返回

在我们之前的示例中,concatenate() 创建了一个新的结果数组。

然而,将现有数组作为

out
参数将结果数组存储在给定的数组中。
import numpy as np

array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[10, 11], [12, 13]])

# create an array of shape (4, 2)
# and initialize all elements to 0
array3 = np.zeros((4, 2)) 
# join the arrays and store result in array3 np.concatenate((array1, array2), out = array3)
print(array3)
Output
[[ 0.  1.]
 [ 2.  3.]
 [10. 11.]
 [12. 13.]]

注意事项

  • 输出数组的形状必须与连接数组的形状匹配,否则会出错。
  • 所有输入数组的维度保持不变(连接轴除外)。

示例 5:指定连接数组的数据类型

我们可以通过传递 dtype 参数来更改连接数组的数据类型。

import numpy as np

array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[10, 11], [12, 13]])

# change elements of the concatenated array to string concatenatedArray = np.concatenate((array1, array2), dtype = str)
print(concatenatedArray)

输出

[['0' '1']
 ['2' '3']
 ['10' '11']
 ['12' '13']]

相关的 NumPy 方法

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战