Numpy是Python中一个重要的科学计算库,该库包含了高性能的多维数组和矩阵计算的函数。其中,合并两个或多个数组是数组操作中最常见的操作之一。本文将介绍了多个方面的numpy合并的用法。
一、vstack和hstack
vstack可以将数组堆叠在垂直方向上,即沿着第一个轴添加元素,而hstack可以将数组堆叠在水平方向上,即沿着第二个轴添加元素。
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.vstack((a,b))
print(c)
d = np.hstack((a,b))
print(d)
输出:
[[1 2 3]
[4 5 6]]
[1 2 3 4 5 6]
在这个例子中,我们定义了两个一维数组a和b。我们使用了vstack将它们沿着垂直方向堆叠,并使用hstack将它们沿着水平方向堆叠。
二、concatenate
concatenate函数可以沿着任意轴连接两个或多个数组。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
c = np.concatenate((a, b), axis=0)
d = np.concatenate((a,b.T), axis=1)
print(c)
print(d)
输出:
[[1 2]
[3 4]
[5 6]]
[[1 2 5]
[3 4 6]]
在这个例子中,我们定义了两个二维数组a和b。我们使用了concatenate将它们沿着轴0(行)连接,输出的形状为(3,2)。 接着,我们使用concatenate沿着轴1(列)连接,输出的形状为(2,3)。
三、stack
stack函数可以沿着新轴连接两个或多个数组,新轴的位置由参数axis指定。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.stack((a, b), axis=0)
d = np.stack((a, b), axis=1)
e = np.stack((a, b), axis=2)
print(c)
print(d)
print(e)
输出:
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
[[[1 2]
[5 6]]
[[3 4]
[7 8]]]
[[[1 5]
[2 6]]
[[3 7]
[4 8]]]
在这个例子中,我们定义了两个二维数组a和b。我们使用了stack沿着新轴(axis=0,1,2)连接。 以axis=0为例,数组a和b将被沿着新的第一轴连接,因此输出的形状将为(2,2,2)。所有三种用法的输出结果都基于相同的概念,但数组的形状可能会有所不同。
四、tile
tile函数可以将一个数组重复指定的次数,这对于扩展数组是非常有用的。
import numpy as np
a = np.array([1, 2, 3])
b = np.tile(a, 2)
c = np.tile(a, (2, 2))
print(b)
print(c)
输出:
[1 2 3 1 2 3]
[[1 2 3 1 2 3]
[1 2 3 1 2 3]]
在这个例子中,我们使用tile函数将数组a重复两次,然后输出该数组。 然后,我们使用tile函数将数组a沿着两个轴重复2次,输出该数组。
五、repeat
repeat函数可以将数组沿着指定的轴重复指定的次数。类似于tile,但是该函数按照元素重复,而不是整个数组重复。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.repeat(a, 2)
c = np.repeat(a, 2, axis=0)
d = np.repeat(a, 2, axis=1)
print(b)
print(c)
print(d)
输出:
[1 1 2 2 3 3 4 4]
[[1 2]
[1 2]
[3 4]
[3 4]]
[[1 1 2 2]
[1 1 2 2]
[3 3 4 4]
[3 3 4 4]]
在这个例子中,我们定义了一个二维数组a。我们使用了repeat函数沿着轴0(行)重复两次,并且按照元素的顺序重复输出的一维数组。 接着,我们使用repeat函数沿着轴0(行)重复两次,形状变成了(4,2) , 接着,我们使用repeat函数沿着轴1(列)重复两次,形状变成了(2,4)
六、Conclusion
在numpy中,我们有很多合并数组的函数,包括vstack,hstack,concatenate,stack,tile和repeat。每个函数都有自己的特殊用途和用法,您可以根据需要选择最合适的方法将数组合并。