1. 程式人生 > >Python numpy關於array的組合和分割

Python numpy關於array的組合和分割

numpy 使用array()來建立陣列或者矩陣

a = numpy.array([1, 2, 3])
a = numpy.arange(9).reshape(3, 3)

下面基於array來談談對陣列形式止的一些操作

陣列的組合

首先新建一些陣列

a = numpy.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])
b = numpy.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])
  • 對a, b橫向組合拼接

    numpy.hstack((a, b))
    >>> array([[0, 1, 2, 0, 1, 2],
           [3, 4, 5, 3, 4, 5],
           [6, 7, 8, 6, 7, 8]])
    numpy.column_stack((a, b))
    >>> array([[0, 1, 2, 0, 1, 2],
           [3, 4, 5, 3, 4, 5],
           [6, 7, 8, 6, 7, 8]])
  • 對a, b縱向組合拼接

    numpy.vstack((a, b))
    >>> array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8],
           [0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    numpy.row_stack((a, b))
    >>> array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8],
           [0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])

陣列的分割

  • 水平分割

    將a水平分割成3列

    numpy.hsplit(a, 3)
    >>> [array([[0],
            [3],
            [6]]), array([[1],
            [4],
            [7]]), array([[2],
            [5],
            [8]])]
  • 垂直分割

    將a垂直分割成3行

    numpy.vsplit(a, 3)
    >>> [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]