关于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 06 Python
使用url_helper简化Python中Django框架的url配置教程
May 30 Python
Python实现多线程抓取妹子图
Aug 08 Python
python入门教程之识别验证码
Mar 04 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
python如何统计代码运行的时长
Jul 24 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
如何使用python切换hosts文件
Apr 29 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 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
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
Laravel 队列使用的实现
2019/01/08 PHP
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js实现进度条的方法
2015/02/13 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JS闭包的几种常见形式实例详解
2017/09/16 Javascript
angularJS开发注意事项
2018/05/26 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
Python中请使用isinstance()判断变量类型
2014/08/25 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python单例模式实例详解
2017/03/01 Python
python 对象和json互相转换方法
2018/03/22 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
Python实现自动签到脚本功能
2020/08/20 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
盛大笔试题
2016/11/05 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
日期和时间问题
2015/01/04 面试题
学校安全管理责任书
2014/07/23 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
学校食品安全责任书
2015/01/29 职场文书
小学作文之描写天气
2019/08/15 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python