Python numpy数组矩阵的合并与拼接

numpy数组拼接

# 示例数组
a = np.array([[1,2], [2,3]])
b = np.array([[3,4], [4,5]])
  • concatenate 提供axis参数指定拼接方向
  • append 默认先flatten再拼接成一维数组,也可指定axis
  • stack 提供axis参数,用于生成新的维度
  • hstack 水平拼接,沿着行的方向,对列进行拼接
  • vstack 垂直拼接,沿着列的方向,对行进行拼接
  • dstack 沿着第三个轴(深度方向)进行拼接
  • np.c_ 水平拼接,沿着行的方向,对列进行拼接
  • np.r_ 垂直拼接,沿着列的方向,对行进行拼接

1、np.concatenate()

np.concatenate(a_tuple, axis=0, out=None)
"""
:param a_tuple:对需要合并的数组用元组的形式给出
:param axis: 沿指定的轴进行拼接,默认0,即第一个轴
"""

示例

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

2、np.append()

append(arr, values, axis=None)
"""
:param arr:array_like的数据
:param values: array_like的数据,若axis为None,则先将arr和values进行ravel扁平化,再拼接;否则values应当与arr的shape一致,或至多
    在拼接axis的方向不一致
:param axis:进行append操作的axis的方向,默认无
"""

示例

  np.append(a, b)   # 先对齐扁平化处理后拼接
  '''
  array([1, 2, 2, 3, 3, 4, 4, 5])
  '''
  
  np.append(a, b, axis=0)
  '''
  array([[1, 2],
         [2, 3],
         [3, 4],
         [4, 5]])
  '''
  
  np.append(a, b, axis=1)
  '''
  array([[1, 2, 3, 4],
         [2, 3, 4, 5]])
  '''

3、np.stack()

  >>> np.stack((a,b))   # 默认axis为0
  array([[[1, 2],
        [2, 3]],
  
         [[3, 4],
          [4, 5]]])
  
  >>> np.stack((a, b), axis=1)
  array([[[1, 2],
          [3, 4]],
  
         [[2, 3],
          [4, 5]]])
  
  >>> np.stack((a,b), axis=2)
  array([[[1, 3],
          [2, 4]],
  
         [[2, 4],
          [3, 5]]])

4、hstackvstack

 >>> np.hstack((a,b))   # 水平拼接,沿着行的方向,对列进行拼接
 array([[1, 2, 3, 4],
        [2, 3, 4, 5]])
 
 >>> np.vstack((a,b))   # 水平拼接,沿着行的方向,对列进行拼接
 array([[1, 2],
        [2, 3],
        [3, 4],
        [4, 5]])

5、np.c_np.r_

  >>> np.c_[a,b]   # 水平拼接,沿着行的方向,对列进行拼接
  array([[1, 2, 3, 4],
         [2, 3, 4, 5]])
  
  >>> np.r_[a,b]   # 水平拼接,沿着行的方向,对列进行拼接
  array([[1, 2],
         [2, 3],
         [3, 4],
         [4, 5]])

你可能感兴趣的:(数据分析,python,numpy,数据分析)