numpy(三)

numpy(三),第1张

数组连接

将两个或者多个数组的内容放在单个数组中

方法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]]]

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/876174.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存