numpy中数组拼接、数组合并方法总结(append(), concatenate, hstack, vstack, column_stack, row_stack, np.r_, np.c_等)

  • Post category:Python

在NumPy中,有多种方法可以将数组拼接或合并在一起。这些方法包括append()concatenate()hstack()vstack()column_stack()row_stack()np.r_np.c_。下面我们将详细讲解这些方法的用法和示例。

append()

append()方法可以将一个数组添加到另一个数组的末尾。它的语法如下:

numpy.append(arr, values, axis=None)

其中,arr是要添加到的数组,values是要添加的数组,axis是要添加的轴。如果未指定axis,则默认为None,表示将数组展平并添加到末尾。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])

# 将数组b添加到数组a的末尾
c = np.append(a, b, axis=0)

print(c)

输出结果为:

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

在这个示例中,我们创建了两个数组ab,然后使用append()方法将数组b添加到数组a的末尾,并将结果存储在数组c中。

concatenate()

concatenate()方法可以将两个或多个数组沿指定轴连接在一起。它的语法如下:

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

其中,a1a2等是要连接的数组,axis是要连接的轴。如果未指定axis,则默认为0,表示沿第一个轴连接。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# 沿第一个轴连接数组a和数组b
c = np.concatenate((a, b), axis=0)

print(c)

输出结果为:

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

在这个示例中,我们创建了两个数组ab,然后使用concatenate()方法沿第一个轴连接数组a和数组b,并将结果存储在数组c中。

hstack()

hstack()方法可以将两个或多个数组水平堆叠在一起。它的语法如下:

numpy.hstack(tup)

其中,tup是要堆叠的数组元组。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 将数组a和数组b水平堆叠在一起
c = np.hstack((a, b))

print(c)

输出结果为:

[1 2 3 4 5 6]

在这个示例中,我们创建了两个数组ab,然后使用hstack()方法将数组a和数组b水平堆叠在一起,并将结果存储在数组c中。

vstack()

vstack()方法可以将两个或多个数组垂直堆叠在一起。它的语法如下:

numpy.vstack(tup)

其中,tup是要堆叠的数组元组。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([[1], [2], [3]])
b = np.array([[4], [5], [6]])

# 将数组a和数组b垂直堆叠在一起
c = np.vstack((a, b))

print(c)

输出结果为:

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

在这个示例中,我们创建了两个数组ab,然后使用vstack()方法将数组a和数组b垂直堆叠在一起,并将结果存储在数组c中。

column_stack()

column_stack()方法可以将一维数组作为列堆叠在二维数组的右侧,从而形成一个新的二维数组。它的语法如下:

numpy.column_stack(tup)

其中,tup是要堆叠的数组元组。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 将数组a作为列堆叠在数组b的右侧
c = np.column_stack((b, a))

print(c)

输出结果为:

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

在这个示例中,我们创建了两个数组ab,然后使用column_stack()方法将数组a作为列堆叠在数组b的右侧,并将结果存储在数组c中。

row_stack()

row_stack()方法可以将一维数组作为行堆叠在二维数组的底部,从而形成一个新的二维数组。它的语法如下:

numpy.row_stack(tup)

其中,tup是要堆叠的数组元组。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 将数组a作为行堆叠在数组b的底部
c = np.row_stack((b, a))

print(c)

输出结果为:

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

在这个示例中,我们创建了两个数组ab,然后使用row_stack()方法将数组a作为行堆叠在数组b的底部,并将结果存储在数组c中。

np.r_

np.r_方法可以将两个或多个数组沿第一个轴连接在一起。它的语法如下:

numpy.r_[array1, array2, ...]

其中,array1array2等是要连接的数组。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 沿第一个轴连接数组a和数组b
c = np.r_[a, b]

print(c)

输出结果为:

[1 2 3 4 5 6]

在这个示例中,我们创建了两个数组ab,然后使用np.r_方法沿第一个轴连接数组a和数组b,并将结果存储在数组c中。

np.c_

np.c_方法可以将两个或多个数组沿第二个轴连接在一起。它的语法如下:

numpy.c_[array1, array2, ...]

其中,array1array2等是要连接的数组。

下面是一个示例:

import numpy as np

# 创建两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 沿第二个轴连接数组a和数组b
c = np.c_[a, b]

print(c)

输出结果为:

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

在这个示例中,我们创建了两个数组ab,然后使用np.c_方法沿第二个轴连接数组a和数组b,并将结果存储在数组c中。

这就是关于“numpy中数组拼接、数组合并方法总结”的完整攻略。我们可以使用append()方法将一个数组添加到另一个数组的末尾,使用concatenate()方法将两个或多个数组沿指定轴连接在一起,使用hstack()方法将两个或多个数组水平堆叠在一起,使用vstack()方法将两个或多个数组垂直堆叠在一起,使用column_stack()方法将一维数组作为列堆叠在二维数组的右侧,使用row_stack()方法将一维数组作为行堆叠在二维数组的底部,使用np.r_方法将两个或多个数组沿第一个轴连接在一起,使用np.c_方法将两个或多个数组沿第二个轴连接在一起。