参考NumPy 数据类型 - 云+社区 - 腾讯云
首先需要导入numpy模块
import numpy as np
a = np.random.random(4)
看看结果信息,左侧是结果信息,右侧是对应的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
很多时候我们用numpy从文本文件读取数据作为numpy的数组,默认的dtype是float64。
但是有些场合我们希望有些数据列作为整数。如果直接改dtype='int'的话,就会出错!原因如上,数组长度翻倍了!!!
下面的场景假设我们得到了导入的数据。我们的本意是希望它们是整数,但实际上是却是浮点数(float64)
如果直接改变b的dtype的话,b的长度翻倍了,这不是我们想要的(当然如果你想的话)