
数组连接
将两个或者多个数组的内容放在单个数组中
方法1:concatenate()
例:
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.concatenate((arr1, arr2))
print(arr)
结果为:[1 2 3 4 5 6]
当concatenate()中传入参数axis = 1时
可对二维及以上数组进行行合并
例:
arr1 = np.array([[1, 2, 3],[4, 7, 6],[1, 2, 3]])
arr2 = np.array([[4, 5, 6],[2, 5, 4],[3, 6, 9]])
arr3 = np.array([[7, 8, 9],[3, 6, 9],[4, 5, 6]])
arr = np.concatenate((arr1, arr2, arr3),axis = 1)
print(arr)
结果为:[[1 2 3 4 5 6 7 8 9]
[4 7 6 2 5 4 3 6 9]
[1 2 3 3 6 9 4 5 6]]
需要注意的是数组个数必须相同,但是数组里边的元素个数可以不同
例如:
arr1 = np.array([[1, 2, 3],[4, 7, 6],[1, 2, 3]])
arr2 = np.array([[4, 5, 6],[2, 5, 4],[3, 6, 9]])
arr3 = np.array([[7, 8],[3, 6],[4,8]])
如果axis的值设为None,则先将其转换为一维数组,再进行合并
其结果为:[1 2 3 4 7 6 1 2 3 4 5 6 2 5 4 3 6 9 7 8 9 3 6 9 4 5 6]
方法2:hstack() 行合并,与concatenate((arr1, arr2, arr3),axis = 1)一样
例:
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.hstack((arr1, arr2))
print(arr)
结果为:[1 2 3 4 5 6]
方法三:vstack() 列合并
arr1 = np.array([[1, 2, 3],[4, 7, 6],[1, 2, 3]])
arr2 = np.array([[4, 5, 6],[2, 5, 4],[3, 6, 9]])
arr3 = np.array([[7, 8, 9],[3, 6, 9],[4, 5, 6]])
arr = np.vstack((arr1, arr2, arr3))
print(arr)
结果为:
[[1 2 3]
[4 7 6]
[1 2 3]
[4 5 6]
[2 5 4]
[3 6 9]
[7 8 9]
[3 6 9]
[4 5 6]]
需要注意的是数组的个数可以不同,但是数组里边的元素个数必须相同
例:
arr1 = np.array([[1, 2, 3],[4, 7, 6],[1, 2, 3]])
arr2 = np.array([[4, 5, 6],[2, 5, 4],[3, 6, 9]])
arr3 = np.array([[7, 8, 9],[3, 6, 9]])
方法四:dstack() 沿深度方向(第三轴)堆叠
例:
arr1 = np.array([[1, 2, 3],[7,8,9]])
arr2 = np.array([[4, 5, 6],[5,7,9]])
arr = np.dstack((arr1, arr2))
print(arr)
结果为:
[[[1 4]
[2 5]
[3 6]]
[[7 5]
[8 7]
[9 9]]]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)