dytpe是numpy的数据类型。
数据中的dytpe都是按照类型名,比如:float和int,来命名的,后面再加一个表明每个元素位数的数字。
我们常见的float64,就是指64个字节。(或64位小数)。
arr1 =np.array([1,2,3],dtype=np.float64)
arr1.dtype
dtype('float64')
arr2 =np.array([1,2,3],dtype=np.int32)
arr2.dtype
dtype('int32')
不仅仅可以规定数组类型,而且还可以转化数组的类型:用到的函数是,astype()
以将整型的转化为浮点型的为例:
arr =np.array([1,2,3,4,5])
arr.dtype
dtype('int32')
float_arr =arr.astype(np.float64)
float_arr.dtype
dtype('float64')
下面是将浮点数转化为整数,消除小数点后的部分。
arr3 =np.array([3.4,-1.2,7.8,10.9,10.8,10.6])
arr3
array([ 3.4, -1.2, 7.8, 10.9, 10.8, 10.6])
arr3.astype(np.int32)
array([ 3, -1, 7, 10, 10, 10])
如果你有一个数组,里面的元素都是字符串,也可以通过astype()将字符串转化为数字。
n =np.array(['1.23','4.56','7.89'],dtype=np.string_)
n
array([b'1.23', b'4.56', b'7.89'], dtype='|S4')
n.astype(float)
array([1.23, 4.56, 7.89])
使用astype总是生成一个新的数组,即使你传入的数组一模一样。