4. 操作多维数组

  1. numpy.concatenate((a1, a2, ...), axis=0):连接多个数组。其中(a1,a2,...)为数组的序列,给出了待连接的数组,它们沿着axis指定的轴连接。

    • 所有的这些数组的形状,除了axis轴之外都相同 concatenate
    • numpy.vstack(tup):等价于numpy.concatenate((a1, a2, ...), axis=0)。沿着 0 轴拼接数组

      • 沿0轴拼接(垂直拼接),增加行
    • numpy.hstack(tup):等价于numpy.concatenate((a1, a2, ...), axis=1)。沿着 1 轴拼接数组

      • 沿1轴拼接(水平拼接),增加列
    • numpy.column_stack(tup):类似于hstack,但是如果被拼接的数组是一维的,则将其形状修改为二维的(N,1)

      • 沿列方向拼接,增加列
    • numpy.c_对象的[]方法也可以用于按列连接数组。但是如果被拼接的数组是一维的,则将其形状修改为二维的(N,1)

      • 沿列方向拼接,增加列

    hstack_vstack1

    hstack_vstack2

  2. numpy.split(ary, indices_or_sections, axis=0)用于沿着指定的轴拆分数组aryindices_or_sections指定了拆分点:

    • 如果为整数N,则表示平均拆分成N份。如果不能平均拆分,则报错
    • 如果为序列,则该序列指定了划分区间(无需指定最开始的0起点和终点)。如[1,3]指定了区间:[0,1],[1,3],[3:]

    numpy.array_split(ary, indices_or_sections, axis=0)的作用也是类似。唯一的区别在于:当indices_or_sections为整数,且无法平均拆分时,并不报错,而是尽可能的维持平均拆分。 split

  3. numpy.transpose(a, axes=None):重置轴序。如果axes=None,则默认重置为逆序的轴序(如原来的shape=(1,2,3),逆序之后为(3,2,1))。如果axes!=None,则要给出重置后的轴序。它获得的是原数组的视图。

    numpy.swapaxes(a, axis1, axis2):交换指定的两个轴axis1/axis2。它获得是原数组的视图。

    transpose