python配列のスライス

27905 ワード

配列のスライス[;,i][i,:j,:k]
説明する
  • “.” 各次元を区切る
  • ":"各次元内のスライス
  • 1.2 D配列
    import numpy as np
    
    a = np.array([[1,2,3],[4,5,6],[7,8,9]])   #
    print(a)
    """
    array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]])
    """
    
    >>> b = a[:,0]  #      0   ,  0   
    >>> b
    array([1, 4, 7])
    >>> b.shape
    (3,)
    >>> b.ndim
    1
    
    >>> c = a[:,1]   #      1   ,  0   
    >>> c
    array([2, 5, 8])
    >>> c.shape
    (3,)
    >>> c.ndim
    1
    
    >>> d = a[:,1:]   #       ,    ,         ,   0 
    >>> d
    array([[2, 3],
           [5, 6],
           [8, 9]])
    >>> d.shape
    (3, 2)
    >>> d.ndim
    2
    
    >>> e = a[1,:]  #         1         ,         
    >>> e
    array([4, 5, 6])
    >>> e.shape
    (3,)
    >>> e.ndim
    1
    
    >>> f = a[:2,1:]   #       0    1 ,      1       
    >>> f
    array([[2, 3],
           [5, 6]])
    >>> f.shape
    (2, 2)
    >>> f.ndim
    2
    

    2.3 D配列
    3 D配列の理解:ページ、行、列
    import numpy as np
    
    #         
    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [7,8,9]
    >>> d = np.array([[a,b,c],[a,b,c]])
    >>> d
    array([[[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]],
    
           [[1, 2, 3],
            [4, 5, 6],
            [7, 8, 9]]])
    >>> d.shape
    (2, 3, 3)
    >>> d.ndim
    3
    
    >>> x = d[1,1,2] #          1,       1,       2.
    >>> x
    6
    >>> type(x)
    <class 'numpy.int32'>
    >>> x.ndim
    0
    >>> x.shape
    ()
    
    >>> y = d[:,1,2]  #
    >>> y
    array([6, 6])
    >>> y.shape
    (2,)
    >>> y.ndim
    1
    
    >>> z = d[:,1:,2]
    >>> z
    array([[6, 9],
           [6, 9]])
    >>> z.shape
    (2, 2)
    >>> z.ndim
    2
    
    >>> o = d[:,1:,:2]
    >>> o
    array([[[4, 5],
            [7, 8]],
    
           [[4, 5],
            [7, 8]]])
    >>> o.shape
    (2, 2, 2)
    >>> o.ndim
    3
    
    

    reshape()関数を使用した3 D配列の作成
    >>> x = np.arange(27)
    >>> x
    array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
           17, 18, 19, 20, 21, 22, 23, 24, 25, 26])
    >>> type(a)
    <class 'list'>
    >>> x = np.reshape(x,(3,3,3))
    >>> x.shape
    (3, 3, 3)
    >>> x.ndim
    3
    >>> x
    array([[[ 0,  1,  2],
            [ 3,  4,  5],
            [ 6,  7,  8]],
    
           [[ 9, 10, 11],
            [12, 13, 14],
            [15, 16, 17]],
    
           [[18, 19, 20],
            [21, 22, 23],
            [24, 25, 26]]])