📜  numpy 垂直复制一个数组 - Python (1)

📅  最后修改于: 2023-12-03 15:03:18.915000             🧑  作者: Mango

numpy 垂直复制一个数组 - Python

在NumPy中,可以通过 numpy.vstack 函数将两个数组垂直堆叠在一起,从而创建一个新的数组。在这个过程中,每个数组的第一个轴的大小必须相同,否则会出现 ValueError 错误。

下面是一个简单的例子:

import numpy as np
 
# 创建两个ndarray对象
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
 
# 使用 vstack 函数垂直堆叠两个数组
c = np.vstack((a, b))
 
print(c)
# output:
# array([[1, 2],
#        [3, 4],
#        [5, 6]])

在这个例子中,我们创建了两个 ndarray 对象 ab,其中 a 的大小为 (2, 2)b 的大小为 (1, 2)。我们使用 numpy.vstack 函数将它们垂直堆叠在一起,创建一个新的数组 c,大小为 (3, 2)

值得注意的是,numpy.vstack 函数的参数是一个元组,表示要堆叠的所有数组。在这个例子中,我们将 ab 两个数组组成一个元组 (a, b) 传递给 numpy.vstack 函数。

除了使用 numpy.vstack 函数外,我们还可以使用 numpy.concatenate 函数将两个数组垂直堆叠在一起。这个函数的参数跟 numpy.vstack 函数类似,不过要加上一个关键字参数 axis,表示要沿着哪个轴进行连接。在垂直连接时,axis 的值应该为 0。

下面是一个使用 numpy.concatenate 函数完成垂直堆叠的例子:

import numpy as np
 
# 创建两个ndarray对象
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
 
# 使用 concatenate 函数垂直堆叠两个数组
c = np.concatenate((a, b), axis=0)
 
print(c)
# output:
# array([[1, 2],
#        [3, 4],
#        [5, 6]])

在这个例子中,我们使用 numpy.concatenate 函数来完成垂直连接操作。除了加上一个关键字参数 axis=0,其他部分跟 numpy.vstack 函数的例子相同。

总之,在 NumPy 中,通过使用 numpy.vstacknumpy.concatenate 函数可以很方便地对数组进行垂直合并操作,这一点在处理数据时非常有用。