栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy中dtype()函数_numpy 类型转换?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy中dtype()函数_numpy 类型转换?

一、数据类型对象

numpy.dtype 类的实例用来描述数组项的组成形式。包括内存块字节数、数据类型等等。

在 NumPy 中描述标量数据的类型,有整数、浮点数等不同精度的几个内置标量类型。这些标量类型不是 dtype 类的实例,但是在需要使用 dtype 对象的地方,也可以使用这些标量。
结构化数据类型则是通过创建字段(包含其它数据类型的数据类型)类形成。每个字段都有一个名称,可以用来访问该字段。

数据类型对象描述了以下几个方面:

    数据的类型(整型、浮点型、Python对象等);数据的大小(多少个字节);数据的顺序(little-endian or big-endian);如果数据类型是子数组,它的形状和数据类型是什么;如果数据类型对象是结构化数据类型,则是其它数据类型的集合;集合的每个元素包括(字段名称、字段数据类型,每个字段占用内存块的哪个部分);
二、numpy.dtype 类 1. numpy.dtype(dtype, align=False, copy=False)类

用于创建一个数据类型对象。NumPy 数组的元素是由dtype描述的。数据类型对象可以由基本数字类型的不同组合构成。

2. 类的参数
    dtype: 要转换为的数据类型对象;align:bool, optional,如果为 true,填充字段使其类似 C 的结构体;copy:bool,optional,复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用;
3. 类的属性
    alignment:根据编译器此数据类型所需的对齐(字节);base:返回基本元素的数据类型;byteorder:指定此数据类型对象字节顺序的字符,<小端,>大端,|不适;char:21种不同内置类型中的每一种的唯一字符代码;descr:PEP3118接口描述了数据类型;fields:此数据类型定义命名字段字典;itemsize:此数据类型对象的元素大小;kind:此数据类型的字符代码;name:数据类型名称;name:字段名称组成的元组;str:此数据类型对象的数组协议类型字符串;
三、dtype数据类型对象构造

每当在 NumPy 函数或方法中需要数据类型时,需要提供 dtype 对象或可以转换为 dtype 的对象。
数据类型对象的转换由dtype构造函数完成,可以转换为数据类型对象的内容有:

1. dtype 对象

按原样使用.

2. None

使用默认的数据类型 float_.

3. Array-scalar 类型:

24钟内置数组标量类型对象,都转换为关联的 dtype 对象;

示例:

# 包含 32 位 big-endia 整数的简单的数据类型。
>>>dt = np.dtype(np.int32)
>dtype('int32')

>>>dt = np.dtype(np.complex128)
>dtype('complex128')
4. 泛型类型

泛型分层类型对象根据关联转换为相应的类型对象:

类型类型
number, inexact, floatingfloat
complexfloatingcfloat
integer, signedintegerint_
unsignedintegeruint
characterstring
generic, flexiblevoid
5. 内置Python类型

Python内置类型在用于生成dtype对象时,等效于对应的数组标量类型:

类型类型
intint_
boolbool_
floatfloat_
complexcfloat
bytesbytes_
strunicode_
unicodeunicode_
buffervoid
all othersobject_

示例:

# 内置数据类型转换。
>>>dt = np.dtype(float)
>dtype('float64')

>>>dt = np.dtype(int)
>dtype('int32')
6. 带有 .dtype的类型

具有 dtype 属性的任何类型对象:将直接访问和使用该属性。该属性必须返回可转换为dtype对象的内容。

7.单字符串(One-character strings)

每个内置数据类型都有一个字符代码,用于唯一的标识,参考《NumPy中的24种不同类型的标量》。
示例:

# 使用字符代码定义数据类型对象。
>>>dt = np.dtype('?')
>dtype('bool')
>
>>>dt = np.dtype('>H')
>dtype('>u2')
8. Array-protocol类型字符串

格式说明:第一个字符用于指定数据的类型,后面的字符用于指定每个项目的字节数,如果第一个字符指定的是Unicode,则后面的字符标识字符数。
字符代码与指代的类型:

代码类型
‘?’boolean
‘b’signed byte
‘B’unsigned byte
isigned intege
‘u’unsigned integer
‘f’floating-point
‘c’complex-floating point
‘m’timedelta
‘M’datetime
‘O’Python objects
‘S’, ‘a’zero-terminated bytes
‘U’Unicode string
‘V’raw data (void)

示例:

>>>dt = np.dtype('i4')
>dtype('int32')
>
>>>dt = np.dtype('c16')
>dtype('complex128')

>>>dt = np.dtype('a25')
>dtype('S25')
9. 带有逗号分隔字段的字符串

用于指定格式化数据类型的简写表示法,生成的数据类型的字段命名为 ‘f0’、‘f1’、···、‘fN’ 。
示例:

# 如果字段的形状需要多个维度,则需要写在数据类型前并在形状上加括号。
>>>dt = np.dtype("a3, 3u8, (2,4)U10")
>dtype([('f0', 'S3'), ('f1', ' 
10. 类型字符串 

可以使用 numpy.sctypeDict.keys() 中包含的任何字符串来生成数据类型对象。
示例:

>>>dt = np.dtype("uint32")
>dtype('uint')
11. 使用(flexible_dtype, itemsize)格式设定灵活数据类型

(flexible_dtype, itemsize)

flexible_dtype:灵活数据类型对象;itemsize:所需项大小的整数
示例:

>>>dt = np.dtype("uint32")
>dtype('V10')

>>>dt = np.dtype(('U', 10))
>dtype(' 
12. 使用(fixed_dtype, shape)格式为固定大小的数据类型设定形状 

(fixed_dtype, shape)

fixed_dtype:固定大小的数据类型;shape:为整数,表示对应大小的一维数组;为元组,表示对应形状的子数组;
示例:

>>>dt = np.dtype(('i8', 3))
>dtype(('>>dt = np.dtype(('i4, (2,3)f8, f4', (2,3)))
>dtype(([('f0', ' 
13. 使用[(field_name, field_dtype, field_shape), ...]格式 

[(field_name, field_dtype, field_shape), ...]

field_name:字段名称;field_dtype:数据类型;field_shape:数组形状;
示例:

>>>dt = np.dtype([('big', '>i4'), ('little', 'dtype([('big', '>i4'), ('little', ' 
14. 使用{'names': ..., 'formats': ..., 'offsets': ..., 'titles': ..., 'itemsize': ...}格式 

{'names': ..., 'formats': ..., 'offsets': ..., 'titles': ..., 'itemsize': ...}

names:必选,字段名称列表;formats:必选,数据类型列表,必须与字段名称列表等长;offsets:可选,每个字段的字节偏移量的列表titles:可选,标题列表;itemsize:可选,设置dtype的总大小;
示例:

>>>dt = np.dtype({'names': ['r','b'], 'formats': ['u1', 'u1'],
                'offsets': [0, 2],
               'titles': ['Red pixel', 'Blue pixel']})
>dtype({'names':['r','b'], 'formats':['u1','u1'], 'offsets':[0,2], 'titles':['Red pixel','Blue pixel'], 'itemsize':3})
15. 使用{'field1': ..., 'field2': ..., ...}格式

{'field1': ..., 'field2': ..., ...}
示例:

>>>dt = np.dtype({'col1': ('U10', 0), 'col2': (np.float32, 10),
    'col3': (int, 14)})
>dtype({'names':['col1','col2','col3'], 'formats':[' 
16. 使用(base_dtype, new_dtype)格式 

这种方法是将 base_dtype 解释为结构化的dtype。
示例:

# 将32位整数解释位两个16位整数
>>>dt = np.dtype((np.int32,{'real':(np.int16, 0),'imag':(np.int16, 2)}))
>dtype((numpy.int32, [('real', '>>dt = np.dtype((np.int32, (np.int8, 4)))
>dtype('int32')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号