关于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 相关文章推荐
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
python 以16进制打印输出的方法
Jul 09 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
Python shutil模块用法实例分析
Oct 02 Python
python实现简单图书管理系统
Nov 22 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 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.MVC的模板标签系统(五)
2006/09/05 PHP
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
php中yii框架实例用法
2020/12/22 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
小程序实现上下移动切换位置
2019/09/23 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
会计毕业生自荐信
2013/11/21 职场文书
中专生自我鉴定书范文
2013/12/28 职场文书
会计职业生涯规划书
2014/01/13 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
Python 数据可视化之Bokeh详解
2021/11/02 Python