精华内容
下载资源
问答
  • 一、自定义数组元素的数据类型概述  根据不同的应用场景,需要自定义数据类型。类似于C语言中的自定义结构体。   二、数据类型   NumPy 支持比 Python 更多种类的数值类型。 下表显示了 NumPy 中定义的不同...

    一、自定义数组元素的数据类型概述

            根据不同的应用场景,需要自定义数据类型。类似于C语言中的自定义结构体。

     

    二、数据类型

     

    NumPy 支持比 Python 更多种类的数值类型。 下表显示了 NumPy 中定义的不同标量数据类型。

    序号 数据类型及描述
    1. bool_存储为一个字节的布尔值(真或假)
    2. int_默认整数,相当于 C 的long,通常为int32或int64
    3. intc相当于 C 的int,通常为int32或int64
    4. intp用于索引的整数,相当于 C 的size_t,通常为int32或int64
    5. int8字节(-128 ~ 127)
    6. int1616 位整数(-32768 ~ 32767)
    7. int3232 位整数(-2147483648 ~ 2147483647)
    8. int6464 位整数(-9223372036854775808 ~ 9223372036854775807)
    9. uint88 位无符号整数(0 ~ 255)
    10. uint1616 位无符号整数(0 ~ 65535)
    11. uint3232 位无符号整数(0 ~ 4294967295)
    12. uint6464 位无符号整数(0 ~ 18446744073709551615)
    13. float_float64的简写
    14. float16半精度浮点:符号位,5 位指数,10 位尾数
    15. float32单精度浮点:符号位,8 位指数,23 位尾数
    16. float64双精度浮点:符号位,11 位指数,52 位尾数
    17. complex_complex128的简写
    18. complex64复数,由两个 32 位浮点表示(实部和虚部)
    19. complex128复数,由两个 64 位浮点表示(实部和虚部)

    NumPy 数字类型是dtype(数据类型)对象的实例,每个对象具有唯一的特征。 这些类型可以是np.bool_,np.float32等。

     

    三、数据类型对象(dtype)

     

     

    数据类型对象描述了对应于数组的固定内存块的解释,取决于以下方面:

    • 数据类型(整数、浮点或者 Python 对象)

    • 数据大小

    • 字节序(小端或大端)

    • 在结构化类型的情况下,字段的名称,每个字段的数据类型,和每个字段占用的内存块部分。

    • 如果数据类型是子序列,它的形状和数据类型。

    字节顺序取决于数据类型的前缀<或>。<意味着编码是小端(最小有效字节存储在最小地址中)。>意味着编码是大端(最大有效字节存储在最小地址中)。

    dtype可由一下语法构造:

    numpy.dtype(object, align, copy)

    参数为:

    • Object:被转换为数据类型的对象。

    • Align:如果为true,则向字段添加间隔,使其类似 C 的结构体。

    • Copy:生成dtype对象的新副本,如果为flase,结果是内建数据类型对象的引用。

    示例 1

    # 使用数组标量类型  
    import numpy as np 
    dt = np.dtype(np.int32)  
    print dt

    输出如下:

    int32

     

    示例 2

    #int8,int16,int32,int64 可替换为等价的字符串 'i1','i2','i4',以及其他。  
    import numpy as np 
    
    dt = np.dtype('i4')  
    print dt

    输出如下:

    int32

    示例 3

    # 使用端记号  
    import numpy as np 
    dt = np.dtype('>i4')  
    print dt

    输出如下:

    >i4

     

    四、自定义数组元素的数据类型实例

    #NumPy数组-- 自定义数据类型
    from numpy import *
    
    #NumPy提供了那些数据类型
    #int8 int16 int32 int64 float32(单精度)、float64或float(双精度)
    #bool
    
    a = array([['a',1,2],[3,4,5],[6,7,8]])
    print(a)
    print("******************************")
    
    #定义表头,用来表示数组中的数据类型
    t = dtype([('name',str_,20),('age',int8),('salary',float32)])
    
    b = array([('a',1,2),(3,4,5),(6,7,8)],dtype=t)
    print(b)
    print("******************************")
    
    items = array([('Bill',30,12345),('Mary',24,8000)])
    print(items)
    print("********************************")
    items1 = array([('Bill',30,12345),('Mary',24,8000)],dtype=t)
    print(items1)

     

    输出结果:

    输出结果:
    [['a' '1' '2']
     ['3' '4' '5']
     ['6' '7' '8']]
    ******************************
    [('a', 1,  2.) ('3', 4,  5.) ('6', 7,  8.)]
    ******************************
    [['Bill' '30' '12345']
     ['Mary' '24' '8000']]
    ********************************
    [('Bill', 30,  12345.) ('Mary', 24,   8000.)]

     

     

     

     

     

    展开全文
  • Python中基本数据类型可以直接使用json.dumps直接转json字符串,但是对于自定义的类来说,需要先将对象“字典化”,也就是使用__dict__这个函数;同理对于数组中的对象,每个对象都需要提前“字典化”,废话不多说...

    前言

    在Python中基本数据类型可以直接使用json.dumps直接转json字符串,但是对于自定义的类来说,需要先将对象“字典化”,也就是使用__dict__这个函数;同理对于数组中的对象,每个对象都需要提前“字典化”,废话不多说,看代码:

    Report.py

    class ReportBean:
        def __init__(self, channel, version, result):
            self.channel = channel
            self.version = version
            self.result = result
    
    
    class ReportResultBean:
        def __init__(self, success, fail, total, startType, detail):
            self.success = success
            self.fail = fail
            self.total = total
            self.startType = startType
            self.detail = detail
    
    
    class ReportResultDetailBean:
        def __init__(self, component, success):
            self.component = component
            self.success = success
    

    TestJson.py

    import json
    
    from bean.Report import ReportResultBean, ReportResultDetailBean, ReportBean
    
    bean = ReportResultDetailBean("com.onexzgj.Activity1", True).__dict__
    bean1 = ReportResultDetailBean("com.onexzgj.Activity2", False).__dict__
    
    details = []
    details.append(bean)
    details.append(bean1)
    
    resultBean = ReportResultBean(100, 50, 150, "上架", details).__dict__
    
    reportBean = ReportBean("应用宝", "第10000个版本", resultBean).__dict__
    
    data2 = json.dumps(reportBean)
    
    print(data2)
    
    

    运行结果:

    {"channel": "\u5e94\u7528\u5b9d", "version": "\u7b2c10000\u4e2a\u7248\u672c", "result": {"success": 100, "fail": 50, "total": 150, "startType": "\u4e0a\u67b6", "detail": [{"component": "com.onexzgj.Activity1", "success": true}, {"component": "com.onexzgj.Activity2", "success": false}]}}
    

    格式化后如下所示:
    在这里插入图片描述

    展开全文
  • Python 对象数组 转JSON 字符串

    万次阅读 2018-11-02 16:22:03
    Python中基本数据类型可以直接使用json.dumps直接转json字符串,但是对于自定义的类来说,需要先将对象“字典化”,也就是使用__dict__这个函数;同理对于数组中的对象,每个对象都需要提前“字典化”,废话不多说...

    前言

    在Python中基本数据类型可以直接使用json.dumps直接转json字符串,但是对于自定义的类来说,需要先将对象“字典化”,也就是使用__dict__这个函数;同理对于数组中的对象,每个对象都需要提前“字典化”,废话不多说,看代码

     

    import json
    
    #define A.class
    class A:
        def __init__(self,name):
            self.name = name
    
    list = []
    list.append(A("12sd3da").__dict__)
    list.append(A("212wq").__dict__)
    list.append(A("dsa").__dict__)
    
    print(json.dumps(list))

    打印结果

    [{"name": "12sd3da"}, {"name": "212wq"}, {"name": "dsa"}]

     

    展开全文
  • nunmpy(三)——自定义数据类型:结构化数组 import numpy as np 本篇介绍numpy中自定义数据类型的方法,以解决numpy中元素数据类型必须一致的问题 本篇的代码全部来自《Python数据科学手册从》中相关章节,见P81-P...

    nunmpy(三)——自定义数据类型:结构化数组

    import numpy as np
    

    本篇介绍numpy中自定义数据类型的方法,以解决numpy中元素数据类型必须一致的问题

    本篇的代码全部来自《Python数据科学手册从》中相关章节,见P81-P84

    “numpy中结构化数组为复合的,异构的数据提供了非常有效的存储”,具体创建方法则如下:

    首先假设三组关于个人信息的分类数据:

    name = ["Alice","Bob","Cindy","David"]
    age = [21,22,23,24]
    weight = [65.0,66.5,67.0,68.5]
    

    然后,可以通过一个names-formats字典创建结构化数据类型:

    arr_strcture = np.zeros(4,dtype={
        "names":("name","age","weight"),  #指明字段的名称
        "formats":("U10","i1","f2")  #指明字段的数据类型
    })
    arr_strcture
    
    array([('', 0,  0.), ('', 0,  0.), ('', 0,  0.), ('', 0,  0.)],
          dtype=[('name', '<U10'), ('age', 'i1'), ('weight', '<f2')])
    

    现在,我们已经创建了一个结构化数组,但是数据仍然是空的,因此需要向其中填充数据。在结构化数组中,填充数据可以采用类似字典的方式:

    arr_strcture["name"] = name
    arr_strcture["age"] = age
    arr_strcture["weight"] = weight
    arr_strcture
    
    array([('Alice', 21,  65. ), ('Bob', 22,  66.5), ('Cindy', 23,  67. ),
           ('David', 24,  68.5)],
          dtype=[('name', '<U10'), ('age', 'i1'), ('weight', '<f2')])
    

    当然,数据填充完了以后还可以查找数据:

    arr_strcture["age"] #按照字段进行数据查找
    
    array([21, 22, 23, 24], dtype=int8)
    
    arr_strcture["age"][1]
    
    22
    
    arr_strcture[0] #按照数据的自然结构进行查找,查找第一条数据
    
    ('Alice', 21,  65.)
    
    arr_strcture[0:2]
    
    array([('Alice', 21,  65. ), ('Bob', 22,  66.5)],
          dtype=[('name', '<U10'), ('age', 'i1'), ('weight', '<f2')])
    

    你甚至可以做一些高级操作:

    arr_strcture[arr_strcture["age"] <= 23]["name"] #找出表中年龄不大于24的人的名字
    
    array(['Alice', 'Bob', 'Cindy'],
          dtype='<U10')
    

    总之,一个结构化数组是非常类似于数据表的,可以按数据行和数据列(字段)进行操作

    创建结构化数组的关键在于如何创建相应的dtype对象,除了上述的names-formats字典外,也可以用元组列表的方法:

    data_type = np.dtype([("name","U10"),("age","i1"),("weight","f2")]) #创建一个dtype对象
    data_type
    
    dtype([('name', '<U10'), ('age', 'i1'), ('weight', '<f2')])
    
    arr_strcture2 = np.zeros(4,dtype=data_type)
    arr_strcture2
    
    array([('', 0,  0.), ('', 0,  0.), ('', 0,  0.), ('', 0,  0.)],
          dtype=[('name', '<U10'), ('age', 'i1'), ('weight', '<f2')])
    
    展开全文
  • 案例一: 自定义数组类,重写了一部分特殊方法以支持数组之间、数组与整数之间的四则运算以及内积、大小比较、成员测试和元素访问等运算符。 案例二: 自定义实现集合, 模拟Python内置集合类型(set),实现元素添加、...
  • 数组,即由相同类型的元素的集合组成的有序数据结构,使用一块连续的内存空间。...自定义数组数据结构(Python) 实现的比较简单,在初始化函数中,确定了定长数组的长度;赋值直接给对应下标赋...
  • 读入的数据存为float类型, 可以自定义数据之间的间隔符, 可以自定义列数cols import numpy as np import linecache # import os filename = "data.dat" cols = 12 # number of column divided_ch = ' ' # divided_...
  • 0202 Python数据类型

    2020-02-06 14:42:48
    Common Data Types 整数 ...Numpy数组 array(List) Others 长整型 100000000000L 布尔型 元组 () ('ring', 1000) 集合{} Pandas类型 Dataframe, Series 自定义 Object Oritented Classes ...
  • 文章目录ndarray生成一个数组数组类型自定义数组数组的运算新建特殊数组数据类型索引和切片 ndarray 生成一个数组 这是一个一维数组,包含5个随机数 import numpy as np data=np.random.randn(5) d...
  • Python中定义类似于iris数据类型的数据 1.鸢尾花iris的数据类型 Bunch本质上的数据类型是dict,其属性(键)有 其中, data:数据数组。 target:文件分类。如猫狗两类的话,与filenames一一对应为0或1。 ...
  • # -*- coding: utf-8 -*- """ Created on Sat May 18 23:03:20 2019 @author: User """ import numpy as np ...#自定义数据类型 goodslist = np.dtype([('name', np.str_, 50), ('location', np.str_, 30), ...
  • Python封装了成熟的排序函数。我们只需要调用内部的sort函数,就可以完成排序。但是实际场景当中,排序的应用往往比较复杂,比如对象类型,当中有多个字段,我们希望按照指定字段排序,或者是希望按照多关键字排序,...
  • # -*- coding: utf-8 -*- """ Created on Sat May 18 23:03:20 2019 @author: User """ import numpy as np ...#自定义数据类型 goodslist = np.dtype([('name', np.str_, 50), ('location', np.str_, 30), ...
  • Python内置的字典数据类型的实现就是散列表。 散列表也被称为字典或者是关联数组(associative array)。 和“关联数组”这个名称的字面意思一样,散列表会像Python的字典一样,把键和值关联起来。 标准的数组数据...
  • 文章目录NumPy对向量的处理效率比较numpy数组创建多维数组选取数组元素numpy数据类型数据类型转换数据类型对象字符编码type类的属性创建自定义数据类型数组与标量的运算一维数组的索引与切片多维数组的切片与索引...
  • 自定义结构体类型:struct使用详解

    千次阅读 2021-03-09 10:37:25
    例如:第一章 Python 机器学习入门之pandas的使用 文章目录系列文章目录一、结构体(struct)二、使用步骤1.引入库2.读入数据总结 一、结构体(struct) 在程序设计时,最重要的步骤之一就是选择表示数据的方法。...
  • 前两篇文章对NumPy数组做了基本的介绍,本篇文章对NumPy数组进行较深入的探讨。首先介绍自定义类型的数组,接着数组的组合,最后介绍...定义字段名称,标明字段数据类型。 [python] view plain copy s
  • 这里写自定义目录标题python科学计算与数据...1.array函数:将输入数据(列表、元组、数组或其他序列类型)转换为ndarray。要么推断出 dtype,要么显式指定 dtype。默认直接复制输入数据。 2.arange:类似于python的range
  • numpy-数组2

    2015-11-11 23:30:55
     自定义结构数组 通过NumPy也可以定义像C语言那样的结构类型。在NumPy中定义结构的方法如下: ...定义字段名称,标明字段数据类型。 [python] view plaincopy student= dtype({'name
  • 前两篇文章对NumPy数组做了基本的介绍,本篇文章对NumPy数组进行较深入的探讨。首先介绍自定义类型的数组,接着数组的组合,...定义字段名称,标明字段数据类型。[python] view plain copystudent= dtype({'names':['n
  • 文章目录Python数据模型使用特殊方法模拟数值类型字符串表示形式算术运算符自定义的布尔值序列构成的数组列表推导式和生成器列表推导式同filter和map的比较生成器表达式元组元组和记录元组拆包具名元组切片为什么...
  • Series对象类似于一维array数组,能保存任何类型数据,如整数、字符串、浮点数等。主要由一组值(value)和与之相关的索引(index)组成。  需强调的是Series对象的索引包含位置索引和名称索引: 位置索引 ...
  •  numpy主要是用来存储和处理大型矩阵,提供了一种存储单一数据类型的多维数组对象------ndarray。还提供了多种运算函数,能够完成数据计算和统计分析,是数据分析的重要工具包。 二、数组对象(ndarray)  1、创建...
  • 文章目录pandas的常用数据类型Series类型创建Series切片和索引DataFrame类型pandas读取外部数据创建DataFrame属性和方法索引 pandas的常用数据类型 一维:Series,带标签数组 二维:DataFrame,Series容器 Series...
  • C++ primer 基础2.变量和基本类型 大多数编程语言都有此些基本...Python是动态性的,它会在程序运行的时候检查数据类型;与之相反,C++是一种静态数据类型语言,它的类型检查发生在编译时。因此,编译器需要知道每...
  • 自定义数据类型 数组的切片和索引 改变数组的维度 数组的组合 数组的分割 数组的属性 数组的转换 常用函数 文件读写 便捷函数 矩阵和通用函数 矩阵 从已有矩阵创建新矩阵 通用函数 算术运算 模运算 ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 114
精华内容 45
关键字:

python自定义数组数据类型

python 订阅