关于Numpy数据类型对象(dtype)使用详解


Posted in Python onNovember 27, 2019

常用方法

#记住引入numpy时要是用别名np,则所有的numpy字样都要替换
 #查询数值类型
>>>type(float)
dtype('float64')
# 查询字符代码
>>> dtype('f')
dtype('float32')
>>> dtype('d')
dtype('float64')
# 查询双字符代码
>>> dtype('f8')
dtype('float64')
# 获取所有字符代码
>>> sctypeDict.keys()
[0, … 'i2', 'int0']
 
# char 属性用来获取字符代码
>>> t = dtype('Float64')
>>> t.char
'd'
# type 属性用来获取类型
>>> t.type
<type 'numpy.float64'>
 
# str 属性获取完整字符串表示
# 第一个字符是字节序,< 表示小端,> 表示大端,| 表示平台的字节序
>>> t.str
'<f8'
 
# 获取大小
>>> t.itemsize
8
 
# 许多函数拥有 dtype 参数
# 传入数值类型、字符代码和 dtype 都可以
>>> arange(7, dtype=uint16)
array([0, 1, 2, 3, 4, 5, 6], dtype=uint16)

类型参数及缩写

类型 字符代码
bool ?, b1
int8 b, i1
uint8 B, u1
int16 h, i2
uint16 H, u2
int32 i, i4
uint32 I, u4
int64 q, i8
uint64 Q, u8
float16 f2, e
float32 f4, f
float64 f8, d
complex64 F4, F
complex128 F8, D
str a, S(可以在S后面添加数字,表示字符串长度,比如S3表示长度为三的字符串,不写则为最大长度)
unicode U
object O
void V

自定义异构数据类型

基本书写格式

import numpy
#定义t的各个字段类型
>>> t = dtype([('name', str, 40), ('numitems', numpy.int32), ('price',numpy.float32)])
>>> t
dtype([('name', '|S40'), ('numitems', '<i4'), ('price','<f4')])
 
# 获取字段类型
>>> t['name']
dtype('|S40')
 
# 使用记录类型创建数组
# 否则它会把记录拆开
>>> itemz = array([('Meaning of life DVD', 42, 3.14), ('Butter', 13,2.72)], dtype=t)
>>> itemz[1]
('Butter', 13, 2.7200000286102295)
#再举个例*
>>>adt = np.dtype("a3, 3u8, (3,4)a10") #3字节字符串、3个64位整型子数组、3*4的10字节字符串数组,注意8为字节
>>>itemz = np.array([('Butter',[13,2,3],[['d','o','g','s'],['c','a','t','s'],['c','o','w','s']])],dtype=adt)
>>>itemz
(b'But', [13, 2, 3], [[b'd', b'o', b'g', b's'], [b'c', b'a', b't', b's'], [b'c', b'o', b'w', b's']])

其他书写格式

#(flexible_dtype, itemsize)第一个大小不固定的参数类型,第二传入大小:
>>> dt = np.dtype((void, 10)) #10位
>>> dt = np.dtype((str, 35))  # 35字符字符串
>>> dt = np.dtype(('U', 10))  # 10字符unicode string
 
#(fixed_dtype, shape)第一个传入固定大小的类型参数,第二参数传入个数
>>> dt = np.dtype((np.int32, (2,2)))     # 2*2int子数组
举例: >>>item = np.array([([12,12],[55,56])], dtype=dt)
array([[12, 12], [55, 56]])
>>> dt = np.dtype(('S10', 1))         # 10字符字符串
>>> dt = np.dtype(('i4, (2,3)f8, f4', (2,3))) # 2*3结构子数组
 
#[(field_name, field_dtype, field_shape), …]
>>> dt = np.dtype([('big', '>i4'), ('little', '<i4')])
>>> dt = np.dtype([('R','u1'), ('G','u1'), ('B','u1'), ('A','u1')])
 
#{‘names': …, ‘formats': …, ‘offsets': …, ‘titles': …, ‘itemsize': …}:
>>> dt= np.dtype({'names':('Date','Close'),'formats':('S10','f8')})
>>> dt = np.dtype({'names': ['r','b'], 'formats': ['u1', 'u1'], 'offsets': [0, 2],'titles': ['Red pixel', 'Blue pixel']})
 
#(base_dtype, new_dtype):
>>>dt = np.dtype((np.int32, (np.int8, 4))) //base_dtype被分成4个int8的子数组

以上这篇关于Numpy数据类型对象(dtype)使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Python 实现一行输入多个值的方法
Apr 21 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python使用PyQt5的简单方法
Feb 27 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
python 杀死自身进程的实现方法
Jul 01 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
Feb 20 Python
为什么说python更适合树莓派编程
Jul 20 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
python队列原理及实现方法示例
Nov 27 #Python
Python numpy.zero() 初始化矩阵实例
Nov 27 #Python
python双端队列原理、实现与使用方法分析
Nov 27 #Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 #Python
OpenCV+Python--RGB转HSI的实现
Nov 27 #Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 #Python
python的range和linspace使用详解
Nov 27 #Python
You might like
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
php生成与读取excel文件
2016/10/14 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
js自带函数备忘 数组
2006/12/29 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
tensorflow 环境变量设置方式
2020/02/06 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
python源文件的字符编码知识点详解
2021/03/04 Python
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
水电站项目建议书
2014/05/12 职场文书
幼儿园标语大全
2014/06/19 职场文书
公民授权委托书范本
2014/09/17 职场文书
主持人开幕词
2015/01/29 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
docker 制作mysql镜像并自动安装
2022/05/20 Servers