这篇文章我们玩玩numpy的数值数据类型转换

导入numpy

>>> import numpy as np

一、随便玩玩

生成一个浮点数组

>>> a = np.random.random(4)

看看信息

>>>a

array([0.0945377 , 0.52199916, 0.62490646, 0.21260126])>>>a.dtype

dtype('float64')>>>a.shape

(4,)

改变dtype,发现数组长度翻倍!

>>> a.dtype = 'float32'

>>>a

array([3.65532693e+20, 1.43907535e+00, -3.31994873e-25,1.75549972e+00, -2.75686653e+14, 1.78122652e+00,-1.03207532e-19, 1.58760118e+00], dtype=float32)>>>a.shape

(8,)

改变dtype,数组长度再次翻倍!

>>> a.dtype = 'float16'

>>>a

array([-9.58442688e-05, 7.19000000e+02, 2.38159180e-01,1.92968750e+00, nan, -1.66034698e-03,-2.63427734e-01, 1.96875000e+00, -1.07519531e+00,-1.19625000e+02, nan, 1.97167969e+00,-1.60156250e-01, -7.76290894e-03, 4.07226562e-01,1.94824219e+00], dtype=float16)>>>a.shape

(16,)

改变dtype='float',发现默认就是float64,长度也变回最初的4

>>> a.dtype = 'float'

>>>a

array([0.0945377 , 0.52199916, 0.62490646, 0.21260126])>>>a.shape

(4,)>>>a.dtype

dtype('float64')

把a变为整数,观察其信息

>>> a.dtype = 'int64'

>>>a

array([4591476579734816328, 4602876970018897584, 4603803876586077261,4596827787908854048], dtype=int64)>>>a.shape

(4,)

改变dtype,发现数组长度翻倍!

>>> a.dtype = 'int32'

>>>a

array([1637779016, 1069036447, -1764917584, 1071690807, -679822259,1071906619, -1611419360, 1070282372])>>>a.shape

(8,)

改变dtype,发现数组长度再次翻倍!

>>> a.dtype = 'int16'

>>>a

array([-31160, 24990, 13215, 16312, 32432, -26931, -19401, 16352,-17331, -10374, -197, 16355, -20192, -24589, 13956, 16331], dtype=int16)>>>a.shape

(16,)

改变dtype,发现数组长度再次翻倍!

>>> a.dtype = 'int8'

>>>a

array([72, -122, -98, 97, -97, 51, -72, 63, -80, 126, -51,-106, 55, -76, -32, 63, 77, -68, 122, -41, 59, -1,-29, 63, 32, -79, -13, -97, -124, 54, -53, 63], dtype=int8)>>>a.shape

(32,)

改变dtype,发现整数默认int32!

>>> a.dtype = 'int'

>>>a.dtype

dtype('int32')>>>a

array([1637779016, 1069036447, -1764917584, 1071690807, -679822259,1071906619, -1611419360, 1070282372])>>>a.shape

(8,)

二、换一种玩法

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

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

下面的场景假设我们得到了导入的数据。我们的本意是希望它们是整数,但实际上是却是浮点数(float64)

>>> b = np.array([1., 2., 3., 4.])>>>b.dtype

dtype('float64')

用 astype(int)得到整数,并且不改变数组长度

>>> c =b.astype(int)>>>c

array([1, 2, 3, 4])

>>> c.shape

(8,)>>>c.dtype

dtype('int32')

如果直接改变b的dtype的话,b的长度翻倍了,这不是我们想要的(当然如果你想的话)

>>>b

array([1., 2., 3., 4.])>>> b.dtype = 'int'

>>>b.dtype

dtype('int32')>>>b

array([ 0,1072693248, 0, 1073741824, 0,1074266112, 0, 1074790400])>>>b.shape

(8,)

三、结论

numpy中的数据类型转换,不能直接改原数据的dtype! 只能用函数astype()。

python改变numpy数据类型_numpy数据类型dtype转换相关推荐

  1. numpy支持比python更多的数据类型_NumPy数据类型

    NumPy - 数据类型 NumPy 支持比 Python 更多种类的数值类型. 下表显示了 NumPy 中定义的不同标量数据类型. 序号数据类型及描述 1. bool_存储为一个字节的布尔值(真或假 ...

  2. python如何改变数据类型_如何改变numpy数组的数据类型和形状?

    数据类型的混合使得这种转换比通常更复杂.最后的答案是,将字段复制到目标数组具有速度和通用性的结合.在 让我们构造一个示例:In [850]: dt Out[850]: dtype([('cycle', ...

  3. python改变numpy数据类型_numpy-Python Pandas-将某些列类型更改为类别

    我已将以下CSV文件输入到iPython Notebook: public = pd.read_csv("categories.csv") public 我也将pdas导入为pd, ...

  4. python改变数组形状_NumPy数组的变形(改变数组形状)

    在机器学习以及深度学习的任务中,通常需要将处理好的数据以模型能接收的格式输入给模型,然后由模型通过一系列的运算,最终返回一个处理结果.然而,由于不同模型所接收的输入格式不一样,往往需要先对其进行一系列 ...

  5. python调用numpy视频_Numpy的文件输入和输出使用

    本课程讲解现在工业界和学术界流行的机器学习算法的相关知识,以及如何用python去实现这些算法.算法的讲解包括supervised learning(有监督式学习)和unsupervised lear ...

  6. python的numpy教程_Python入门教程(一):初识Numpy

    点击上方 蓝字 关注我们! Numpy是Python中较为常用的模块,今天我们就从Numpy的基础应用讲起,非常适合0基础的小白哦,python系列的基础课程也会持续更新. 首先,我们在运用某个模块之 ...

  7. python numpy 数据类型为python对象-python numPy模块 与numpy里的数据类型、数据类型对象dtype...

    学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...

  8. python numpy数据类型_python numPy模块 与numpy里的数据类型、数据类型对象dtype

    学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...

  9. NumPy 数据类型对象(dtype)的构造

    一.数据类型对象 numpy.dtype 类的实例用来描述数组项的组成形式.包括内存块字节数.数据类型等等. 在 NumPy 中描述标量数据的类型,有整数.浮点数等不同精度的几个内置标量类型.这些标量 ...

最新文章

  1. 苹果禁止使用热更新 iOS开发程序员新转机来临
  2. python 将os.getcwd()获取路径中的\替换成\\
  3. java wsdl xfire_java调用wsdl xfire和cxf两种方式
  4. .php y=mp4,PHP输出MP4视频流函数
  5. jdk5.0的新特性
  6. Jenkins的配置及使用
  7. 认识JQuery的三天--看视频得到的一些小知识点
  8. 订单接收不同业务消息设计
  9. [BJ2006] 狼抓兔子
  10. wps2005插件开发之旅
  11. Adobe Bridge使用教程:BR键盘快捷键大全
  12. 野蛮人传教士问题(上)
  13. 字谜游戏(b)C语言
  14. 机器学习、数据建模、数据挖掘分析 特征无量纲化的常见操作方法
  15. 关于动物识别论文的阅读笔记——青鳉鱼的个体识别和“面部反转效应”
  16. 佳能软件不用光盘安装升级包的方法
  17. Java程序是如何运行的
  18. ARM Cortex M3M4处理器复位流程
  19. mysql中on用法_详解mysql中的Using与On的用法
  20. EN 14339地下消防栓—CE认证

热门文章

  1. 22、scroll 元素滚动
  2. 解读微博2019年Q3财报:进入5亿时代,微博正走向纵向发展
  3. 图片与十六进制之间的相互转换
  4. 共阴极和共阳数码管详解
  5. 安卓使用华为HMS实现扫码功能
  6. 2021 CCPC 广州站总结
  7. sharpfile文件和C#解析(基础知识准备)
  8. 通过前序中序,中序后序,前序后序来构造一二叉树
  9. 计算机主板外频,计算机外频的相关概念
  10. 公交车语音播报系统的使用说明书