python numpy dtype object_关于Numpy数据类型对象(dtype)使用详解

python numpy dtype object_关于Numpy数据类型对象(dtype)使用详解常用方法#记住引入numpy时要是用别名np,则所有的numpy字样都要替换#查询数值类型>>>type(float)dtype(‘float64’)#查询字符代码>>>dtype(‘f’)dtype(‘float32’)>>>dtype(‘d’)dtype(‘float64’)#查询双字符代码>>>dtype(‘f…

大家好,又见面了,我是你们的朋友全栈君。

常用方法

#记住引入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

# str 属性获取完整字符串表示

# 第一个字符是字节序,< 表示小端,> 表示大端,| 表示平台的字节序

>>> t.str

# 获取大小

>>> 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’, ‘

# 获取字段类型

>>> 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’, ‘

>>> 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)使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

除非注明,否则均为软件工程师@钟江华原创文章,转载必须以链接形式标明本文链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140741.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python输入的字符串转换为数字类型_python字符串转int

    python输入的字符串转换为数字类型_python字符串转intpython数字类型和字符串类型的相互转换实例一、python中字符串转换成数字(方法1)类中进行导入:importstringstr=’555’num=string.atoi(str)num即为str转换成的数字转换为浮点数:string.atof(str)(方法2)直接intint(str)即可。二、数字转换成字符串num=322str=’%d’%numstr即为num转换成的字符串以上这…

    2022年10月9日
    0
  • XGBOOST + LR 模型融合 python 代码

    XGBOOST + LR 模型融合 python 代码XGBOOST+LR(XGBOOSTgridsearch)先留个广告,最近做一个数据挖掘的比赛,主要用的就是xgboost,等比赛完后年前好好整理代码开源,到时候代码会比下面整份完整。XGBOOST+LR是CTR常用的一种方式。下面是实现XGBOOST+LR的代码,具体的原理不做细说。有了下面的代码框架,你可以对xgboost进行参数优化搜索,同时可以利用

    2022年10月13日
    0
  • BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)

    BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)BH1750FVI是一款数字型光强度传感器集成芯片,内部由光敏二极管、运算放大器、ADC采集、晶振等组成。PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(注:进入光窗的光越强,光电流越大,电压就越大,所以通过电压的大小就可以判断光照大小,但是要注意的是电压和光强虽然是一一对应的,但不是成正比的,所以这个芯片内部是做了线性处理的,这也是为什么不直接用光敏二极管而用集成IC的原因)。

    2022年6月2日
    138
  • Linux面试题(2020最新版)[通俗易懂]

    Linux面试题(2020最新版)[通俗易懂]文章目录Linux概述什么是LinuxUnix和Linux有什么区别?什么是Linux内核?Linux的基本组件是什么?Linux的体系结构BASH和DOS之间的基本区别是什么?Linux开机启动过程?Linux系统缺省的运行级别?Linux使用的进程间通信方式?Linux有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什…

    2022年4月27日
    36
  • 二叉树层次遍历算法——C/C++

    二叉树层次遍历算法——C/C++二叉树层序遍历1、算法思想用一个队列保存被访问的当前节点的左右孩子以实现层序遍历。在进行层次遍历的时候,设置一个队列结构,遍历从二叉树的根节点开始,首先将根节点指针入队列,然后从队头取出一个元素,每取一个元素,执行下面两个操作:访问该元素所指向的节点若该元素所指节点的左右孩子节点非空,则将该元素所指节点的左孩子指针和右孩子指针顺序入队。此过程不断进行,当队列为空时,二叉树的层次遍历结束…

    2022年6月5日
    24
  • HADOOP生态圈简介

    HADOOP生态圈简介1.hadoop生态概况Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。Hadoop的核心是YARN,HDFS和Mapreduce下图是hadoop生态系统,集成spark生态圈。在未来一段时间内,hadoop将于spark共存,hadoop与s…

    2022年5月22日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号