《玩转Numpy计算库》视频课程
《玩转Numpy计算库》视频课程链接:https://edu.csdn.net/course/detail/28656

数据类型对象 ( dtype)

dtype (Data Type Objects)

数据类型对象dtype是numpy.dtype类的实例。它可以使用numpy.dtype创建。到目前为止,我们在numpy数组的例子中只使用了基本的数字数据类型,如int和float。这些numpy数组仅包含同类数据类型。

dtype对象还可以包括基本数据类型的组合。在dtype的帮助下,我们能够创建“结构化数组”(“Structured Arrays”),也称为“记录数组”(“Record Arrays”)。结构化数组使我们能够为每列提供不同的数据类型。它与excel或csv文档的结构相似。

dtype对数据的描述

一个数据类型对象描述了应该如何解释与数组元素相对应的固定大小的内存块中的字节。 它描述了数据的以下方面:

  1. 数据类型(整数,浮点数,Python对象等)
  2. 数据大小(以整数为单位的字节数)
  3. 数据的字节顺序(小端或大端)
  4. 如果数据类型是结构化数据类型,则是其他数据类型的集合(例如,描述由整数和浮点数组成的一个数组元素),
    1. 该结构的字段(field)的名称是什么,通过它们可以访问它们;
    2. 每个字段的数据类型是什么;
    3. 每个字段占用存储块的哪一部分。
  5. 如果数据类型是子数组(sub-array),则其形状和数据类型是什么。

大端模式 (big-endian)

是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。

小端模式 (little-endian)

是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为低字节。

对于大端模式,就将0x11放在低地址中,即0x0010中,0x22放在高地址中,即0x0011中。

小端模式,刚好相反。我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。

dtype举例:

dt = np.dtype('b')  # byte, native byte order
dt = np.dtype('>H') # big-endian unsigned short
dt = np.dtype('<f') # little-endian single-precision float
dt = np.dtype('d')  # double-precision floating-point number
dt = np.dtype('i4')   # 32-bit signed integer
dt = np.dtype('f8')   # 64-bit floating-point number
dt = np.dtype('c16')  # 128-bit complex floating-point number
dt = np.dtype('a25')  # 25-length zero-terminated bytes
dt = np.dtype('U25')  # 25-character string
dt = np.dtype("i4, (2,3)f8, f4")
* field named f0 containing a 32-bit integer
* field named f1 containing a 2 x 3 sub-array of 64-bit floating-point numbers
* field named f2 containing a 32-bit floating-point number

例:一个包含32位big-endian整数的简单数据类型:

dt = np.dtype('>i4')
dt.byteorder
'>'
dt.itemsize
4
dt.name
'int32'
dt.type is np.int32
True

下面的例子中,我们定义一个int16的数据类型并调用它。 列表’lst’的元素被转换为i16类型以创建二维数组A.

import numpy as np
i16 = np.dtype(np.int16)
print(i16)
lst = [ [3.4, 8.7, 9.9], [1.1, -7.8, -0.7],[4.1, 12.3, 4.8] ]
A = np.array(lst, dtype=i16)
print(A)
int16
[[ 3  8  9][ 1 -7  0][ 4 12  4]]

ndarray的元素数据类型

查看ndarray支持的数据类型可访问:https://numpy.org/devdocs/user/basics.types.html

ndarray为什么要支持这么多种元素类型?

• 科学计算涉及数据较多,对存储和性能都有较高要求

• 对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能

• 对元素类型精细定义,有助于程序员对程序规模有合理评估

3. Numpy中的数据类型对象 ( dtype)相关推荐

  1. python中dtype什么意思_NumPy Python中的数据类型对象(dtype)

    每个ndarray都有一个关联的数据类型(dtype)对象.此数据类型对象(dtype)告知我们有关数组布局的信息.这意味着它为我们提供了有关以下信息: 数据类型(整数,浮点数,Python对象等) ...

  2. python numpy 数据类型为python对象-python numPy模块 与numpy里的数据类型、数据类型对象dtype...

    学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...

  3. python numpy数据类型_python numPy模块 与numpy里的数据类型、数据类型对象dtype

    学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...

  4. python numpy dtype object_关于Numpy数据类型对象(dtype)使用详解

    常用方法 #记住引入numpy时要是用别名np,则所有的numpy字样都要替换 #查询数值类型 >>>type(float) dtype('float64') # 查询字符代码 &g ...

  5. B02_NumPy数据类型(常见基本数据类型列举,数据类型对象 (dtype))

    NumPy数据类型 numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型.下表列举了常用 NumPy 基 ...

  6. Python数据类型对象dtype

    数据类型对象dtype以及结构化数据类型 在Python之中,我们经常需要用到数据类型对象,这篇博客是我在查找资料的时候,根据找到的资料再结合本人自身的理解记录下来的,本篇记录的是dtype常用的一些 ...

  7. NumPy之:数据类型对象dtype

    文章目录 简介 dtype的定义 可转换为dtype的对象 dtype对象 None 数组标量类型 通用类型 内置Python类型 带有.dtype属性的对象 一个字符的string对象 数组类型的S ...

  8. python dtype(0)_Python numpy,创建数组,数据类型,dtype属性

    demo.py(numpy,创建数组): # coding=utf-8 import numpy as np # 使用numpy生成数组,得到ndarray的类型 t1 = np.array([1,2 ...

  9. 总结numpy中的ndarray,非常齐全

    公众号后台回复"图书",了解更多号主新书内容 来源:Python碎片 作者:binn.wong numpy(Numerical Python)是一个开源的Python数据科学计算库 ...

最新文章

  1. AI犯错谁之过?切勿盲目相信之
  2. 转牛人博客 稀疏矩阵定义CSR COO CSC 第一个讲的清晰易懂的人
  3. 一起学mini2440裸机开发(十)--mini2440外部中断实验
  4. Python 定时调度
  5. 深度学习模型保存_Web服务部署深度学习模型
  6. php7安装mysqli扩展_Ubuntu14版本下无法使用php7.2版本的bcmath扩展
  7. 鸿蒙系统定位低端市场,明年年初见!鸿蒙系统会先定位中低端,后续全面升级...
  8. 计算机技术要求单科成绩吗,软考考试合格标准怎样确定?单科成绩是否保留?
  9. 智能云如何加速产业智能化?百度CTO王海峰2020全球智博会擘画蓝图
  10. LuaForUnity5:Lua的字符串
  11. 一句“哭什么哭”,说得好
  12. transformClassesWithProfilers-transformForDebug
  13. 计算机毕业论文性能测试怎么写,计算机毕业论文撰写技巧
  14. STM32学习记录0004——ISP串口下载
  15. 外贸收付款5种方式分析
  16. 【攻击威胁】女巫攻击(sybil attack)
  17. 第四届橙瓜网络文学奖网文之王,烽火戏诸侯舍我其谁?
  18. Buuctf 佛系青年
  19. 【COPOD】Suppressing Poisoning Attacks on Federated Learning for Medical Imaging
  20. VBS脚本实现宽带上网加网页认证上网双验证

热门文章

  1. steam/csgo搬砖项目安全吗?什么是桌面sda令牌?红信如何解决?
  2. python画猴子_Python猴子补丁Monkey Patch用法实例解析
  3. C#将Excel文件中选择的内容,复制粘贴到 winform datagridview
  4. 什么是https(详细),http和https
  5. 图纸管理文档实时共享方法
  6. python标准库生成随机数_Python3标准库:random伪随机数生成器
  7. java基础篇_java基础篇1
  8. AHB和APB总线的比较
  9. html链接外部css代码,html如何调用外部css?
  10. android 喇叭帧动画,Android动画详解-帧动画