关于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 相关文章推荐
django创建自定义模板处理器的实例详解
Aug 14 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
python中time库的实例使用方法
Oct 31 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
Python如何实现后端自定义认证并实现多条件登陆
Jun 22 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 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 a simple smtp class
2007/11/26 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
php实现微信企业转账功能
2018/10/02 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
Python读取mp3中ID3信息的方法
2015/03/05 Python
python 判断网络连通的实现方法
2018/04/22 Python
python中plot实现即时数据动态显示方法
2018/06/22 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
法律工作求职自荐信
2013/10/31 职场文书
学校安全责任书
2014/04/14 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
2019军训心得体会
2019/06/27 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android