关于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中的len()函数的使用
Apr 07 Python
Python3访问并下载网页内容的方法
Jul 28 Python
Python 实现随机数详解及实例代码
Apr 15 Python
sublime text 3配置使用python操作方法
Jun 11 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
详解Python字符串切片
May 20 Python
python基于socket实现的UDP及TCP通讯功能示例
Nov 01 Python
python垃圾回收机制(GC)原理解析
Dec 30 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
Django操作session 的方法
Mar 09 Python
Selenium启动Chrome时配置选项详解
Mar 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调用Oracle存储过程的方法
2008/09/12 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
Using the TextRange Object
2006/10/14 Javascript
ext实现完整的登录代码
2008/08/08 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
js读取配置文件自写
2014/02/11 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
决策树的python实现方法
2014/11/18 Python
Python中的字典遍历备忘
2015/01/17 Python
Python多进程同步简单实现代码
2016/04/27 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python:slice与indices的用法
2019/11/25 Python
python时间日期操作方法实例小结
2020/02/06 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python函数参数分类原理详解
2020/05/28 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
幼儿师范毕业生自荐信
2013/11/09 职场文书
电子商务专业个人的自我评价
2013/12/19 职场文书
幼儿园门卫制度
2014/01/29 职场文书
一年级数学教学反思
2014/02/01 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
浅谈Python中对象是如何被调用的
2022/04/06 Python
关于vue-router-link选择样式设置
2022/04/30 Vue.js