zoukankan      html  css  js  c++  java
  • NumPy 数据类型

    章节


    NumPy提供的数值类型,数值范围比Python提供的数值类型更大。NumPy的数值类型,如下表所示:

    SN 数据类型 描述
    1 bool_ 布尔值,取值ture/false,占用一个字节
    2 int_ 是integer的默认类型。与C语言中的long类型相同,有可能是64位或32位。
    3 intc 类似于C语言中的整数类型(int),表示32位或64位的整型。
    4 intp 表示用于索引的整数。
    5 int8 8位整数,值的范围是-128到127。
    6 int16 2字节(16位)整数。范围是-32768到32767。
    7 int32 4字节(32位)的整数。范围是-2147483648到2147483647。
    8 int64 8字节(64位)整数。范围是-9223372036854775808到9223372036854775807。
    9 uint8 1字节(8位)无符号整数。
    10 uint16 2字节(16位)无符号整数。
    11 uint32 4字节(32位)无符号整数。
    12 uint64 8字节(64位)无符号整数。
    13 float_ 与float64相同。
    14 float16 半精度浮点数。5位保留给指数,10位保留给尾数,1位保留给符号。
    15 float32 单精度浮点数。8位保留给指数,23位保留给尾数,1位保留给符号。
    16 float64 双精度浮点数。指数保留11位,尾数保留52位,符号保留1位。
    17 complex_ 与complex128相同。
    18 complex64 复数,实数和虚数各占32位。
    19 complex128 复数,实数和虚数各占64位。

    上述所有数值类型,都可由dtype描述。

    NumPy 数据类型对象(dtype)

    数据类型对象/dtype,是描述数组中元素数据类型的对象。具体内容包括:

    • 数据类型(整数、浮点数或Python对象)
    • 数据长度
    • 字节顺序(小端或大端)
    • 在结构化类型中,字段名称、字段数据类型等。
    • 如果数据类型是子数组,则会包含其形状和数据类型

    字节顺序由数据类型的前缀('<'或'>')决定。'<'表示小端,'>'表示大端。

    我们可以使用以下语法,创建一个dtype对象。

    numpy.dtype(object, align, copy) 
    

    参数:

    • object: 要转换为dtype类型的对象。
    • align: 布尔值。如果为真,则添加额外的填充,使其等效于C结构体
    • copy: 创建一个新的dtype对象副本。如果为false,则结果是对内置数据类型对象的引用

    示例

    import numpy as np 
    dt = np.dtype(np.int32) 
    print(dt)
    

    输出

    int32
    

    示例

    #int8, int16, int32, int64 等价于字符串 'i1', 'i2','i4', etc. 
    import numpy as np 
    
    dt = np.dtype('i4')
    print(dt)
    

    输出

    int32
    

    示例

    # 使用字节顺序标记
    import numpy as np 
    dt = np.dtype('>i4') 
    print(dt)
    

    输出

    >i4
    

    创建结构化数据类型

    我们可以创建类似字典的数据类型,包括字段名与字段值。

    下面的示例展示了结构化数据类型的使用。

    示例

    # 先创建结构化数据类型
    import numpy as np 
    dt = np.dtype([('age',np.int8)]) # 格式是:[('字段名', 字段类型)]
    print(dt) 
    

    输出

    [('age', 'i1')] 
    

    示例

    # 现在将它应用到ndarray对象
    import numpy as np 
    
    dt = np.dtype([('age',np.int8)]) 
    a = np.array([(10,),(20,),(30,)], dtype = dt) 
    print(a) 
    

    输出

    [(10,) (20,) (30,)]
    

    示例

    # 字段名可用于访问列的内容
    import numpy as np 
    
    dt = np.dtype([('age',np.int8)]) 
    a = np.array([(10,),(20,),(30,)], dtype = dt) 
    print(a['age'])
    

    输出

    [10 20 30]
    

    示例

    下面的示例定义了一个名为student的结构化数据类型,其中包含字符串字段“name”、整数字段“age”和浮点字段“marks”。然后将此dtype应用于ndarray对象。

    import numpy as np 
    student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
    print(student)
    

    输出

    [('name', 'S20'), ('age', 'i1'), ('marks', '<f4')])
    
    import numpy as np 
    
    student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) 
    a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student) 
    print(a)
    

    输出

    [('abc', 21, 50.0), ('xyz', 18, 75.0)]
    

    每个内置数据类型都有一个唯一标识它的字符代码。

    • 'b' − boolean
    • 'i' − (signed) integer
    • 'u' − unsigned integer
    • 'f' − floating-point
    • 'c' − complex-floating point
    • 'm' − timedelta
    • 'M' − datetime
    • 'O' − (Python) objects
    • 'S', 'a' − (byte-)string
    • 'U' − Unicode
    • 'V' − raw data (void)
  • 相关阅读:
    06-ajax发送请求-上传时注意事项
    02-git hooks是什么玩意?跟husky什么关系?
    SpringBoot配置热部署
    稀疏数组
    移动web开发——flex布局
    网站推荐
    ArrayList中的contains方法
    Java对象相等判断
    逻辑与(&)、短路与(&&)、逻辑或(|)、短路或(||)
    CentOS6.5下设置静态IP
  • 原文地址:https://www.cnblogs.com/jinbuqi/p/11316749.html
Copyright © 2011-2022 走看看