当前位置:   article > 正文

numpy 数据类型转换_numpy转int

numpy转int

首先需要导入numpy模块

import numpy as np

首先生成一个浮点数

a = np.random.random(4)

dtype的用法

看看结果信息,左侧是结果信息,右侧是对应的python语句

我们发现这个数组的type是float64,那我们试着改变一个数组的类型,会有什么样的变化呢?请看下面的截图

我们发现数组长度翻倍了!由原来的(4,)变成了(8,)

那么,再次改变数组的类型,由float32改为float16,会是什么样的结果呢?

果然不出所料,数组的长度再次翻倍,由原来的(8,)变成了(16,)

 

如果再次改变数组的类型,由float16变为float64,会发现数组的长度也会由(16,)变为(4,)

同理,如果数组的类型是int,也会有这样类似的变化

dtype = 'int32'  时对应的的数组长度为 (8,)

若改为  a.dtype = 'int16',则数组长度会再次翻倍,变为(16,)

若改为  a.dtype = 'int8',则数组成都会再次翻倍,变为(32,)

如果改为 a.dtype = 'int',会发现整数默认的是int32;如果改为 a.dtype = 'float' ,会发现浮点型默认的是float64

 

float型和int型转换

很多时候我们用numpy从文本文件读取数据作为numpy的数组,默认的dtype是float64。
但是有些场合我们希望有些数据列作为整数。如果直接改dtype='int'的话,就会出错!原因如上,数组长度翻倍了!!!

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

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

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

结论

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/350087
推荐阅读
  

闽ICP备14008679号