标签(空格分隔): python


文章目录

      • uint8:在此输入正文8位的无符号整形数据,取值范围从0到255
    • 一、singed与unsigned的区别
    • 二、float,
      • 1.改变类型, $64 \to 32$ shape翻倍
      • 2.改变类型, $32 \to 16$ shape翻倍
      • 3.改变类型, $32 \to float$ shape还原, float默认是float64
      • 4.改变类型, $float64 \to int$
      • 5.改变类型, $int \to int32 \to int16 \to int8$
      • 6.改变类型, $int8 \to int$ 默认是int32
    • 三、看看数据转换 astype等知识
      • 1、向下取整
      • 2、四舍五入
      • 3、向上取整
      • 4、分别取整数部分和小数部分
        • - 接下来是重点,astype
  • 转载和疑问声明
  • 我祝各位帅哥,和美女,你们永远十八岁,嗨嘿嘿~~~

uint8:在此输入正文8位的无符号整形数据,取值范围从0到255

一、singed与unsigned的区别

1).计算机最小的存储单位是“位” 也就是bit或binary digits,用来存放一个二进制数,即 0或1, 8个二进制位为一个字节Byte。

2).对于16-bit(16位)的计算机,int是以两个字节来储存的,而32-bit的计算机,则是以4个字节,即32个bit来储存的。

如果想要明白singed与unsigned的区别,除了这两个基本知识,还需要了解整数在计算机中的存储方式,以16-bit 计算机为例,定义 int a = 1, 那么a的存储方式用表格来表示

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

最左边的0是用来标记正负的,故signed 类型就是 −215−1→+215−1-2^{15-1} \to +2^{15-1}−215−1→+215−1, unsigned 则是0→+216−10 \to +2^{16}-10→+216−1.

二、float,

>>> import numpy as np
>>>
>>> a = np.array([0.213132, 1.032123, 2.000212])
>>> a
array([ 0.213132,  1.032123,  2.000212])
>>> a.dtype
dtype('float64')
>>> a.shape
(3,)

1.改变类型, 64→3264 \to 3264→32 shape翻倍

>>> a.dtype = 'float32'
>>> a
array([ -1.16170272e+08,   1.58813190e+00,   3.15813966e+24,1.87901533e+00,   5.84719814e-16,   2.00002646e+00], dtype=float32)
>>> a.shape
(6,)

2.改变类型, 32→1632 \to 1632→16 shape翻倍

>>> a.dtype = 'float16'
>>> a
array([ -9.47952271e-04,  -1.94531250e+01,   7.90625000e+00,1.94824219e+00,   1.49169922e-01,   2.12600000e+03,-5.45382500e-05,   1.98437500e+00,  -1.43647194e-04,2.40478516e-02,   6.61611557e-06,   2.00000000e+00], dtype=float16)
>>> a.shape
(12,)
>>>

3.改变类型, 32→float32 \to float32→float shape还原, float默认是float64

>>> a.shape
(12,)
>>> a.dtype = 'float'
>>> a
array([ 0.213132,  1.032123,  2.000212])
>>> a.shape
(3,)
>>>

4.改变类型, float64→intfloat64 \to intfloat64→int

>>> a.dtype = 'int'
>>> a
array([-857893948, 1070286824, 1747398854, 1072726931,  640190645,1073741935])
>>> a.shape
(6,)
>>>

5.改变类型, int→int32→int16→int8int \to int32 \to int16 \to int8int→int32→int16→int8

>>> a.dtype = 'int32'
>>> a
array([-857893948, 1070286824, 1747398854, 1072726931,  640190645,1073741935])
>>> a.shape
(6,)
>>>
>>> a.dtype = 'int16'
>>> a
array([-27708, -13091,  18408,  16331,  12486,  26663, -31853,  16368,-30539,   9768,    111,  16384], dtype=int16)
>>> a.shape
(12,)
>>>
>>>
>>> a.dtype = 'int8'
>>> a
array([ -60, -109,  -35,  -52,  -24,   71,  -53,   63,  -58,   48,   39,104, -109, -125,  -16,   63,  -75, -120,   40,   38,  111,    0,0,   64], dtype=int8)
>>> a.shape
(24,)
>>>

6.改变类型, int8→intint8 \to intint8→int 默认是int32

>>> a.dtype = 'int'
>>> a.shape
(6,)
>>> a
array([-857893948, 1070286824, 1747398854, 1072726931,  640190645,1073741935])
>>>

三、看看数据转换 astype等知识

1、向下取整

向下取整直接用内建的 int() 函数即可:

a = 3.75
int(a)
3

2、四舍五入

对数字进行四舍五入用 round() 函数:


>>>round(3.25); round(4.85)
3.0
5.0

3、向上取整

向上取整需要用到 math 模块中的 ceil() 方法:


>>>import math
>>>math.ceil(3.25)
4.0
>>>math.ceil(3.75)
4.0
>>>math.ceil(4.85)
5.0

4、分别取整数部分和小数部分

有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math 模块中的 modf()
方法,该方法返回一个包含小数部分和整数部分的元组:

>>>import math
>>>math.modf(3.25)
(0.25, 3.0)
>>>math.modf(3.75)
(0.75, 3.0)
>>>math.modf(4.2)
(0.20000000000000018, 4.0)

- 接下来是重点,astype

很多时候我们用numpy从文本文件读取数据作为numpy的数组,默认的dtype是float64

但是有些场合我们希望有些数据列作为整数, 如果直接改dtype='int'的话,就会出错!原因如上,数组长度翻倍了!!!

怎么办? 用astype!

>>> b = np.array([1.23,12.201,123.1])
>>>
>>> b
array([   1.23 ,   12.201,  123.1  ])
>>> b.dtype
dtype('float64')
>>> c = b.astype(int)
>>> c
array([  1,  12, 123])
>>> c.dtype
dtype('int32')
>>>

好像还没讲uint类型,其实就是unsigned int嘛,看‘一’部分

>>>
>>> b = np.array([1.23,12.201,123.1])
>>>
>>> b.astype('uint8')
array([  1,  12, 123], dtype=uint8)
>>> b.astype('uint16')
array([  1,  12, 123], dtype=uint16)
>>> b.astype('uint32')
array([  1,  12, 123], dtype=uint32)
>>> b.astype('uint64')
array([  1,  12, 123], dtype=uint64)
>>>
>>>
>>>
>>>
>>> b = np.array([-1.23,12.201,123.1])
>>>
>>> b.astype('uint8')
array([255,  12, 123], dtype=uint8)
>>> b.astype('uint16')
array([65535,    12,   123], dtype=uint16)
>>> b.astype('uint32')
array([4294967295,         12,        123], dtype=uint32)
>>> b.astype('uint64')
array([18446744073709551615,                   12,                  123], dtype=uint64)
>>>

转载和疑问声明

如果你有什么疑问或者想要转载,没有允许是不能转载的哈
赞赏一下能不能转?哈哈,联系我啊,我告诉你呢 ~~
欢迎联系我哈,我会给大家慢慢解答啦~~~怎么联系我? 笨啊~ ~~ 你留言也行

你关注微信公众号1.机器学习算法工程师:2.或者扫那个二维码,后台发送 “我要找朕”,联系我也行啦!

(爱心.gif) 么么哒 ~么么哒 ~么么哒
码字不易啊啊啊,如果你觉得本文有帮助,三毛也是爱!

我祝各位帅哥,和美女,你们永远十八岁,嗨嘿嘿~~~

数据格式汇总及type, astype, dtype区别相关推荐

  1. python中dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别

    如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list. ...

  2. python中type(),dtype(),astype()的区别

    python中type(),dtype(),astype()的区别 type(): 返回的是数据结构的类型(list, dict,numpy.ndarry) >>> k = [1, ...

  3. python dtype什么意思_浅谈python 中的 type(), dtype(), astype()的区别

    如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list. ...

  4. python中astype用法_浅谈python 中的 type(), dtype(), astype()的区别

    如下所示: 函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list. ...

  5. HTML button 和 input type=“button”的区别 / input type=submit 和button的区别

    HTML <button> 和 input type="button"的区别: 1. <button>标签里可以放文本图片等内容,与<input> ...

  6. C#中的值类型(value type)与引用类型(reference type)的区别

    ylbtech- .NET-Basic:C#中的值类型与引用类型的区别 C#中的值类型(value type)与引用类型(reference type)的区别 1.A,相关概念返回顶部 C#中有两种数 ...

  7. 【ts】typescript高阶:键值类型及type与interface区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 typescript高阶之键值类型及type与interface区别 前言 一.键值类型的语法 1.语法 2.错误例子 3.正确例子 ...

  8. python 中的 type(), dtype(), astype()的区别

    函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等) 备注:1)由于 list.dict 等 ...

  9. 浅谈Python中的type()、dtype()、astype()的区别

    函数 说明 type() 返回数据结构类型(list.dict.numpy.ndarray 等) dtype() 返回数据元素的数据类型(int.float等)备注:1.由于 list.dict 等可 ...

最新文章

  1. 如何简单地理解Python中的if __name__ == '__main__'
  2. 原相机怎么拍出网图_专访5位时尚生活达人,他们都用哪款相机记录生活美好瞬间...
  3. 表白c语言程序设计,C语言编程学习打造表白神器:亲爱的让我们相爱在一起
  4. python函数调用的一般形式_Python的函数的定义与使用示例
  5. 胡椒“辣”味是怎样炼成的
  6. .net core orm框架_轻量级高性能PHP框架ycroute
  7. 通过人脸测试心率和呼吸率
  8. npm install 报错(npm ERR! errno -4048,Error: EPERM: operation not permitted,)解决方法
  9. javascript学习之利用DOM和正则表达式判断主流浏览器的类型
  10. 阿里P8架构师谈:如何搭建亿级并发系统的性能指标体系
  11. 突发!甲骨文严查Java授权,很多公司连夜卸载了JDK,启用OpenJDK 替代....
  12. SQLServer2008客户端软件
  13. Android 进阶——系统启动之核心SystemServer进程启动详解(七)
  14. 《经济机器是怎样运行的》笔记(一)
  15. 胖客户端、瘦客户端与智能客户端
  16. 计算机一级office分数要求,2015计算机一级MSOffice考试方式和要求
  17. sk_buff 详解(一)
  18. JavaScript中for、for...in、for...of、forEach的区别和用法
  19. java fix sence_iFixit 拆解:Apple 苹果 再次改进蝶式键盘机械结构
  20. SDX62出现WARNING: CPU: 0 PID: 8743 at net/netfilter/nf_nat_core.c:614 nf_nat_setup_info+0x8e4/0x900

热门文章

  1. 2021年起重机司机(限桥式起重机)及起重机司机(限桥式起重机)实操考试视频
  2. STC89C52/90C516RD/89C516RD DHT11温湿度传感器驱动代码
  3. 使用STM32内部ADC资源读取环境光传感器
  4. Python “贪吃蛇”魔改大赛,码出你的 Style
  5. python爬虫爬取妹子图
  6. 2.5 学费计算(project)
  7. ZOJ 2849【瞎暴力的搜索】
  8. 520礼物,svg月亮鲜花动画(二、背景)
  9. Java基于百度API的图片文字识别
  10. 南玻A回应系列热点问题 宝能20亿无息贷款“驰援”