当使用numpy进行数组操作时,有时需要将两个或多个数组拼接成一个大数组。numpy提供了多种方法进行数组拼接,包括在行和列上合并,这些操作分别通过 numpy.concatenate() 和 numpy.vstack()、numpy.hstack() 完成。
numpy.concatenate()
numpy.concatenate()是将多个数组按照指定轴拼接成一个大数组的函数。拼接的数组数量可以是两个及以上。
语法: numpy.concatenate((a1, a2, ...), axis=0, out=None)
举例说明:
首先,我们定义两个二维数组:
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
现在,我们将这两个数组沿着第一维(即将行进行拼接)进行拼接:
c = np.concatenate((a,b), axis=0)
print(c)
输出结果为:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
我们可以看到,拼接后的大数组 c 包含了数组 a 和 b 所有的行数和列数。
同样的,我们可以将数组在第二维(即将列进行拼接)进行拼接:
c = np.concatenate((a,b), axis=1)
print(c)
输出结果为:
array([[1, 2, 5, 6],
[3, 4, 7, 8]])
我们可以看到,拼接后的大数组 c 依次包含了数组 a 和 b 所有的列数。
numpy.vstack() 和 numpy.hstack()
与numpy.concatenate() 类似,numpy.vstack() 和 numpy.hstack() 也是numpy提供的数组拼接函数。下面分别进行详细介绍。
numpy.vstack()
numpy.vstack() 函数是将多个数组在垂直方向上堆叠起来,形成一个更高的数组。注意,这要求输入的数组有相同的列数。
语法: numpy.vstack(tup)
举例说明:
首先,我们定义两个二维数组:
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6]])
现在,我们将这两个数组在垂直方向上进行堆叠:
c = np.vstack((a,b))
print(c)
输出结果为:
array([[1, 2],
[3, 4],
[5, 6]])
我们可以看到,拼接后的大数组 c 包含了数组 a 和 b 所有的行数和列数。
numpy.hstack()
numpy.hstack() 函数是将多个数组在水平方向上堆叠起来,形成一个更宽的数组。注意,这要求输入的数组有相同的行数。
语法: numpy.hstack(tup)
举例说明:
首先,我们定义两个二维数组:
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5],[6]])
现在,我们将这两个数组在水平方向上进行堆叠:
c = np.hstack((a,b))
print(c)
输出结果为:
array([[1, 2, 5],
[3, 4, 6]])
我们可以看到,拼接后的大数组 c 依次包含了数组 a 和 b 所有的列数和行数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:numpy 进行数组拼接,分别在行和列上合并的实例 - Python技术站