关于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使用PIL缩放网络图片并保存的方法
Apr 24 Python
创建Django项目图文实例详解
Jun 06 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
Django中间件基础用法详解
Jul 18 Python
python之pexpect实现自动交互的例子
Jul 25 Python
python+selenium select下拉选择框定位处理方法
Aug 24 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
Python操作SQLite数据库过程解析
Sep 02 Python
Python集合操作方法详解
Feb 09 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
如何解决pycharm调试报错的问题
Aug 06 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
php 全局变量范围分析
2009/08/07 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
vue的全局提示框组件实例代码
2018/02/26 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[03:12]完美世界DOTA2联赛PWL DAY7集锦
2020/11/06 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
python实现字符串和数字拼接
2020/03/02 Python
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
入党积极分子介绍信
2014/01/17 职场文书
迟到早退检讨书
2014/02/10 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
加入学生会演讲稿
2014/04/24 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
创业计划书之废品回收
2019/09/26 职场文书
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL