关于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中assert用法实例分析
Apr 30 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
python中的数据结构比较
May 13 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
Python OpenCV去除字母后面的杂线操作
Jul 05 Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 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高级OOP技术演示
2009/08/27 PHP
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
django 修改server端口号的方法
2018/05/14 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
python程序如何进行保存
2020/07/03 Python
容易被忽略的Python内置类型
2020/09/03 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
delegate与普通函数的区别
2014/01/22 面试题
人事专员岗位职责说明书
2014/07/30 职场文书
中秋节国旗下演讲稿
2014/09/05 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL