python改变numpy数据类型_numpy数据类型dtype转换
这篇文章我们玩玩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转换相关推荐
- numpy支持比python更多的数据类型_NumPy数据类型
NumPy - 数据类型 NumPy 支持比 Python 更多种类的数值类型. 下表显示了 NumPy 中定义的不同标量数据类型. 序号数据类型及描述 1. bool_存储为一个字节的布尔值(真或假 ...
- python如何改变数据类型_如何改变numpy数组的数据类型和形状?
数据类型的混合使得这种转换比通常更复杂.最后的答案是,将字段复制到目标数组具有速度和通用性的结合.在 让我们构造一个示例:In [850]: dt Out[850]: dtype([('cycle', ...
- python改变numpy数据类型_numpy-Python Pandas-将某些列类型更改为类别
我已将以下CSV文件输入到iPython Notebook: public = pd.read_csv("categories.csv") public 我也将pdas导入为pd, ...
- python改变数组形状_NumPy数组的变形(改变数组形状)
在机器学习以及深度学习的任务中,通常需要将处理好的数据以模型能接收的格式输入给模型,然后由模型通过一系列的运算,最终返回一个处理结果.然而,由于不同模型所接收的输入格式不一样,往往需要先对其进行一系列 ...
- python调用numpy视频_Numpy的文件输入和输出使用
本课程讲解现在工业界和学术界流行的机器学习算法的相关知识,以及如何用python去实现这些算法.算法的讲解包括supervised learning(有监督式学习)和unsupervised lear ...
- python的numpy教程_Python入门教程(一):初识Numpy
点击上方 蓝字 关注我们! Numpy是Python中较为常用的模块,今天我们就从Numpy的基础应用讲起,非常适合0基础的小白哦,python系列的基础课程也会持续更新. 首先,我们在运用某个模块之 ...
- python numpy 数据类型为python对象-python numPy模块 与numpy里的数据类型、数据类型对象dtype...
学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...
- python numpy数据类型_python numPy模块 与numpy里的数据类型、数据类型对象dtype
学习链接:http://www.runoob.com/numpy/numpy-tutorial.html 简介: numPy是python语言的一个扩展库,是一个运行非常快的数学库,主要用于数组计算. ...
- NumPy 数据类型对象(dtype)的构造
一.数据类型对象 numpy.dtype 类的实例用来描述数组项的组成形式.包括内存块字节数.数据类型等等. 在 NumPy 中描述标量数据的类型,有整数.浮点数等不同精度的几个内置标量类型.这些标量 ...
最新文章
- 苹果禁止使用热更新 iOS开发程序员新转机来临
- python 将os.getcwd()获取路径中的\替换成\\
- java wsdl xfire_java调用wsdl xfire和cxf两种方式
- .php y=mp4,PHP输出MP4视频流函数
- jdk5.0的新特性
- Jenkins的配置及使用
- 认识JQuery的三天--看视频得到的一些小知识点
- 订单接收不同业务消息设计
- [BJ2006] 狼抓兔子
- wps2005插件开发之旅
- Adobe Bridge使用教程:BR键盘快捷键大全
- 野蛮人传教士问题(上)
- 字谜游戏(b)C语言
- 机器学习、数据建模、数据挖掘分析 特征无量纲化的常见操作方法
- 关于动物识别论文的阅读笔记——青鳉鱼的个体识别和“面部反转效应”
- 佳能软件不用光盘安装升级包的方法
- Java程序是如何运行的
- ARM Cortex M3M4处理器复位流程
- mysql中on用法_详解mysql中的Using与On的用法
- EN 14339地下消防栓—CE认证