NumPy 基本数据结构和属性

NumPy 基本数据结构和属性

  1. NumpyPython科学计算库,用于快速处理任意维度的数组

  2. NumPy提供一个N维数组类型ndarray,它描述了相同类型的“items”的集合。

  3. ndarray支持向量化运算

  4. NumPy使用c语言写的,底部解除了GIL,其对数组的操作速度不在受python解释器限制

  5. ndarray属性

    属性 描述
    ndarray.shape 数组维度的元组
    ndarray.ndim 数组维数
    ndarray.size 数组中的元素数量
    ndarray.itemsize 一个数组元素的长度(字节)
    ndarray.dtype 数组元素的类型
  6. import numpy as np
    
    a = np.array([1,2,3])
    b = np.array([[1,2,3],[4,5,6]])
    c = np.array([[[1,2],[3,4]], [[5,6],[7,8]]])
    #shape表示数组的形状
    #a.shape ---> (3,) 一维数组
    #b.shape --->(2,3)二维数组 2行3列
    #c.shape --->(2,2,2)三维数组
    
    #ndim表示数组的维度
    #a.ndim ---> 1
    #b.ndim ---> 2
    #c.ndim ---> 3
    
    #size表示数组中的元素数量
    #a.size ---> 3
    #b.size ---> 6
    #c.size ---> 8
    
    #dtype表示元组元素的类型
    #a.dtype ---> dtype('int32')
    #b.dtype ---> dtype('int32')
    #c.dtype ---> dtype('int32')
    
  7. ndarray元素数据类型

    ndarray.dtype查看数组元素的数据类型,NumPy支持比Python更多的数值类型

    数据类型 描述 唯一标识符
    bool 用一个字节存储的布尔类型(True或False) 'b'
    int8 一个字节大小,-128 至 127 'i'
    int16 整数,16 位整数(-32768 ~ 32767) 'i2'
    int32 整数,32 位整数(-2147483648 ~ 2147483647) 'i4'
    int64 整数,64 位整数(-9223372036854775808 ~ 9223372036854775807) 'i8'
    uint8 无符号整数,0 至 255 'u'
    uint16 无符号整数,0 至 65535 'u2'
    uint32 无符号整数,0 至 2 ** 32 - 1 'u4'
    uint64 无符号整数,0 至 2 ** 64 - 1 'u8'
    float16 半精度浮点数:16位,正负号1位,指数5位,精度10位 'f2'
    float32 单精度浮点数:32位,正负号1位,指数8位,精度23位 'f4'
    float64 双精度浮点数:64位,正负号1位,指数11位,精度52位 'f8'
    complex64 复数,分别用两个32位浮点数表示实部和虚部 'c8'
    complex128 复数,分别用两个64位浮点数表示实部和虚部 'c16'
    object_ python对象 'O'
    string_ 字符串 'S'
    unicode_ unicode类型 'U'

    NumPy的数值类型实际上是 dtype对象的实例,并对应唯一的字符,包括 np.bool_np.int32np.float32,等等。

    import numpy as np
    d = np.dtype(np.int32)
    print(d) ---> int32
    
    # 创建数组指定数据类型
    e = np.array([[1,2],[3,4]],dtype=np.float32)
    e ---> array([[1., 2.],
           [3., 4.]], dtype=float32)
    
    f = np.array([[1,2],[3,4]],dtype=np.dtype('f4'))
    f ---> array([[1., 2.],
           [3., 4.]], dtype=float32)
    
    
    
    # 创建结构化数据类型
    
    # 1. 创建数据类型
    dt = np.dtype([('price','f4')]) # price 类型的字段名,自定义, 'f4'数据类型 float32
    
    # 2. 将数据类型应用到 ndarray对象
    nd = np.array([(10),(25.8),(36.6)], dtype=dt)
    nd ---> array([(10. ,), (25.8,), (36.6,)], dtype=[('price', '<f4')])
    #创建数组中不同的数据类型数组
    dt = np.dtype([('name','S20'), ('price', 'f4'),
                   ('weight', 'i1')])
    nd = np.array([('meat', 15.6, 2),('apple', 6, 2)],dtype=dt)
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容