函数

numpy中可用于拼接的函数有:

  • append(arr, values, axis=None)
  • concatenate((a1, a2, ...), axis=0, out=None)
  • stack(arrays, axis=0, out=None)
  • hstack(tup)
  • vstack(tup)
  • dstack(tup)

使用时需要注意的是除了append都需要以tup形式传入,axis=0表示按行拼接,axis=1表示按列拼接,拼接时需要注意数组形状要匹配。

测试代码

a = np.array([[1, 2, 3],
              [1, 2, 3]])
b = np.array([[4, 5, 6]])

np.append(a, b)  # 其实底层调用concatenate()
# array([1, 2, 3, 1, 2, 3, 4, 5, 6])
np.append(a, b, axis=0)  # 必须保证列数一样
# array([[1, 2, 3],
#       [1, 2, 3],
#       [4, 5, 6]])
np.append(a, a, axis=1)  # 必须保证行数一样
# array([[1, 2, 3, 1, 2, 3],
#       [1, 2, 3, 1, 2, 3]])
np.concatenate((a, b))  # 默认axis=0
np.concatenate((a, b), axis=0)
# array([[1, 2, 3],
#        [1, 2, 3],
#        [4, 5, 6]])
np.concatenate((a, a), axis=1)
# array([[1, 2, 3, 1, 2, 3],
#        [1, 2, 3, 1, 2, 3]])
np.stack((a, a))  # 会增加一个维度
# array([[[1, 2, 3],
#         [1, 2, 3]],
#        [[1, 2, 3],
#         [1, 2, 3]]])
np.stack((b, b), axis=1)
# array([[[4, 5, 6],
#         [4, 5, 6]]])
np.hstack((a, a))  # 水平拼接
# array([[1, 2, 3, 1, 2, 3],
#        [1, 2, 3, 1, 2, 3]])
np.vstack((a, a))  # 垂直拼接
# array([[1, 2, 3],
#        [1, 2, 3],
#        [1, 2, 3],
#        [1, 2, 3]])
np.dstack((a, a))  # 会增加维度
# array([[[1, 1],
#         [2, 2],
#         [3, 3]],
#        [[1, 1],
#         [2, 2],
#         [3, 3]]])
np.dstack((b, b))
# array([[[4, 4],
#         [5, 5],
#         [6, 6]]])

参考

https://blog.csdn.net/guofei_fly/article/details/85485173

最后修改:2020 年 08 月 11 日 06 : 38 PM