NumPy - 数组属性

  • 简述

    在本章中,我们将讨论 NumPy 的各种数组属性。
  • ndarray.shape

    这个数组属性返回一个由数组维度组成的元组。它也可以用来调整数组的大小。

    示例 1

    
    import numpy as np 
    a = np.array([[1,2,3],[4,5,6]]) 
    print a.shape
    
    输出如下 -
    
    (2, 3)
    

    示例 2

    
    # this resizes the ndarray 
    import numpy as np 
    a = np.array([[1,2,3],[4,5,6]]) 
    a.shape = (3,2) 
    print a 
    
    输出如下 -
    
    [[1, 2] 
     [3, 4] 
     [5, 6]]
    

    示例 3

    NumPy 还提供了一个 reshape 函数来调整数组的大小。
    
    import numpy as np 
    a = np.array([[1,2,3],[4,5,6]]) 
    b = a.reshape(3,2) 
    print b
    
    输出如下 -
    
    [[1, 2] 
     [3, 4] 
     [5, 6]]
    
  • ndarray.ndim

    此数组属性返回数组维数。

    示例 1

    
    # an array of evenly spaced numbers 
    import numpy as np 
    a = np.arange(24) 
    print a
    
    输出如下 -
    
    [0 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16 17 18 19 20 21 22 23] 
    

    示例 2

    
    # this is one dimensional array 
    import numpy as np 
    a = np.arange(24) 
    a.ndim  
    # now reshape it 
    b = a.reshape(2,4,3) 
    print b 
    # b is having three dimensions
    
    输出如下 -
    
    [[[ 0,  1,  2] 
      [ 3,  4,  5] 
      [ 6,  7,  8] 
      [ 9, 10, 11]]  
      [[12, 13, 14] 
       [15, 16, 17]
       [18, 19, 20] 
       [21, 22, 23]]] 
    
  • numpy.itemsize

    此数组属性返回数组中每个元素的长度(以字节为单位)。

    示例 1

    
    # dtype of array is int8 (1 byte) 
    import numpy as np 
    x = np.array([1,2,3,4,5], dtype = np.int8) 
    print x.itemsize
    
    输出如下 -
    
    1
    

    示例 2

    
    # dtype of array is now float32 (4 bytes) 
    import numpy as np 
    x = np.array([1,2,3,4,5], dtype = np.float32) 
    print x.itemsize
    
    输出如下 -
    
    4
    
  • numpy.flags

    ndarray 对象具有以下属性。此函数返回其当前值。
    序号 属性和描述
    1
    C_CONTIGUOUS (C)
    数据位于单个 C 风格的连续段中
    2
    F_CONTIGUOUS (F)
    数据位于单个 Fortran 风格的连续段中
    3
    OWNDATA (O)
    数组拥有它使用的内存或从另一个对象借用它
    4
    WRITEABLE (W)
    可以写入数据区。将此设置为 False 锁定数据,使其只读
    5
    ALIGNED (A)
    数据和所有元素都针对硬件进行了适当的对齐
    6
    UPDATEIFCOPY (U)
    该数组是其他数组的副本。当这个数组被释放时,基数组将被更新为这个数组的内容

    例子

    以下示例显示了标志的当前值。
    
    import numpy as np 
    x = np.array([1,2,3,4,5]) 
    print x.flags
    
    输出如下 -
    
    C_CONTIGUOUS : True 
    F_CONTIGUOUS : True 
    OWNDATA : True 
    WRITEABLE : True 
    ALIGNED : True 
    UPDATEIFCOPY : False