关于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 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
django的登录注册系统的示例代码
May 14 Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 Python
Python 删除整个文本中的空格,并实现按行显示
Jul 24 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
python实现飞机大战小游戏
Nov 08 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
Python实现京东秒杀功能代码
2019/05/16 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python基于Faker假数据构造库
2020/11/30 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
会议开场欢迎词
2014/01/15 职场文书
初中校园广播稿
2014/02/02 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
租房协议书范文
2014/08/20 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记