Numpy 合并两个数组
在Numpy中,可以通过多种方式将两个或多个数组合并为一个数组。在本篇文章中,我们将介绍Numpy中主要的两种数组合并方式:水平合并和垂直合并。同时,我们还会介绍如何使用reshape()函数在合并数组之前改变数组的形状。
阅读更多:Numpy 教程
水平合并
水平合并是将两个数组沿着水平方向拼接。在Numpy中,可以使用hstack()函数实现水平合并。下面是一个简单的例子:
import numpy as np
array1 = np.array([1,2,3])
array2 = np.array([4,5,6])
new_array = np.hstack((array1, array2))
print(new_array)
输出:
[1 2 3 4 5 6]
在这个例子中,我们先定义两个大小相同的一维数组array1和array2。使用hstack()函数将array1和array2沿着水平方向拼接,生成一个新的一维数组new_array。
与此类似,我们也可以对二维数组进行水平合并。例如:
array1 = np.array([[1,2,3],
[4,5,6]])
array2 = np.array([[7,8,9],
[10,11,12]])
new_array = np.hstack((array1, array2))
print(new_array)
输出:
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
在这个例子中,我们定义了两个大小相同的二维数组array1和array2,使用hstack()函数将它们沿着水平方向拼接,生成一个新的二维数组new_array。
垂直合并
垂直合并是将两个数组沿着垂直方向拼接。在Numpy中,可以使用vstack()函数实现垂直合并。下面是一个简单的例子:
array1 = np.array([1,2,3])
array2 = np.array([4,5,6])
new_array = np.vstack((array1, array2))
print(new_array)
输出:
[[1 2 3]
[4 5 6]]
在这个例子中,我们先定义两个大小相同的一维数组array1和array2。使用vstack()函数将array1和array2沿着垂直方向拼接,生成一个新的二维数组new_array。
与此类似,我们也可以对二维数组进行垂直合并。例如:
array1 = np.array([[1,2,3],
[4,5,6]])
array2 = np.array([[7,8,9],
[10,11,12]])
new_array = np.vstack((array1, array2))
print(new_array)
输出:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
在这个例子中,我们定义了两个大小相同的二维数组array1和array2,使用vstack()函数将它们沿着垂直方向拼接,生成一个新的二维数组new_array。
改变数组形状
在使用hstack()或vstack()函数将数组合并之前,如果需要将数组的形状改变,可以使用reshape()函数。下面是一个简单的例子:
array1 = np.array([1,2,3,4,5,6])
array1 = array1.reshape((2, 3))
array2 = np.array([7,8,9,10,11,12])
array2 = array2.reshape((2, 3))
new_array = np.vstack((array1, array2))
print(new_array)
输出:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
在这个例子中,我们先定义两个大小相同的一维数组array1和array2,然后使用reshape()函数将它们变成大小为(2, 3)的二维数组。接下来,使用vstack()函数将这两个二维数组沿着垂直方向拼接,生成一个新的二维数组new_array。
总结
Numpy提供了hstack()和vstack()函数来实现数组的水平合并和垂直合并。在使用这些函数之前,也可以使用reshape()函数改变数组的形状。这些函数可以方便地将多个数组合并为一个数组,为数据分析和机器学习提供了便利。
极客教程