您的位置:

numpy转换数据类型

一、numpy数据类型

numpy是一个基于python的科学计算库,这个库提供了很多数据类型,比如bool、int、float、complex等类型。numpy里有83种数据类型,可以满足大多数数据类型的需求。

二、numpy数组数据类型转换

numpy提供了astype函数,可以用于数组的数据类型转换。astype()函数的语法如下:

arr.astype(dtype)

其中arr为要转换的数组,dtype为目标数据类型。astype()函数会返回一个新数组,原数组不会被修改。astype()函数可以接受很多种数据类型,可以是numpy数组数据类型,也可以是python原生数据类型(比如int、float等)。

三、numpy数据类型代码

numpy里的每个数据类型都对应一个字符串代码,这些代码是用来指定数组类型的。下面是一些常见的numpy数据类型与其代码:

  • int8:i1
  • int16:i2
  • int32:i4
  • int64:i8
  • uint8:u1
  • uint16:u2
  • uint32:u4
  • uint64:u8
  • float16:f2
  • float32:f4
  • float64:f8
  • complex64:c8
  • complex128:c16
  • bool:?

四、numpy数据类型转换

有时候,我们需要将一个数组从一个数据类型转换成另一个数据类型。比如,我们可能需要将整型数组转换成浮点型数组,或者将布尔型数组转换成整型数组等。numpy提供了astype()函数用于数组数据类型转换。

下面是一个例子,将一个整型数组转换成浮点型数组:

import numpy as np

arr_int = np.array([1, 2, 3, 4, 5])
arr_float = arr_int.astype(np.float64)

print("arr_int的数据类型:", arr_int.dtype)
print("arr_float的数据类型:", arr_float.dtype)

执行上面的代码会得到如下输出:

arr_int的数据类型: int32
arr_float的数据类型: float64

五、numpy主要数据类型

numpy的主要数据类型有以下几种:

  • int
  • float
  • complex
  • bool
  • object
  • string_
  • unicode_

这些数据类型在numpy里都有相应的字符串代码表示。例如,int对应的字符串代码是i。

六、numpy常用的数据类型

在日常工作中,我们经常使用的一些numpy数据类型有:

  • int32:32位整型
  • float64:64位浮点型
  • bool:布尔型
  • object:Python对象
  • string_:字符串型
  • datetime64:时间日期型

七、numpy修改数据类型

除了astype()函数外,numpy还提供了其他函数用于修改数组数据类型。例如,numpy中的view()函数可以创建一个新的数组,该数组与原数组共享数据缓冲区,但拥有不同的数据类型。下面是一个例子:

import numpy as np

arr_f = np.array([1.1, 2.2, 3.3, 4.4])
arr_i = arr_f.view(dtype=np.int32)

print("arr_f的数据类型:", arr_f.dtype)
print("arr_i的数据类型:", arr_i.dtype)
print("arr_f:", arr_f)
print("arr_i:", arr_i)

执行上面的代码会得到如下输出:

arr_f的数据类型: float64
arr_i的数据类型: int32
arr_f: [1.1 2.2 3.3 4.4]
arr_i: [         0 1071225240 1075838976 1077936128]

从上面的输出可以看出,view()函数创建了一个新的数组arr_i,它与原数组arr_f共享数据缓冲区,但数据类型不同。

八、numpy查看数据类型

我们可以使用dtype属性来查看一个numpy数组的数据类型。例如:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(arr.dtype)

执行上面的代码会得到如下输出:

int32

九、numpy默认数据类型

当我们创建一个numpy数组时,如果没有显式地指定数据类型,numpy会根据数据的类型自动选择默认的类型。例如,如果我们创建一个包含整数和浮点数的数组,numpy会选择浮点数类型作为默认类型。

import numpy as np

arr = np.array([1, 2.0, 3, 4.0, 5])

print(arr.dtype)

执行上面的代码会得到如下输出:

float64

十、numpy的数据类型有哪些

numpy里有很多数据类型,这里列出一些比较常用的数据类型与其代码:

  • int8:i1
  • int16:i2
  • int32:i4
  • int64:i8
  • uint8:u1
  • uint16:u2
  • uint32:u4
  • uint64:u8
  • float16:f2
  • float32:f4
  • float64:f8
  • complex64:c8
  • complex128:c16
  • bool:?
  • object:O
  • string_:S
  • unicode_:U

numpy提供了很多函数可以用来进行数据类型的转换和修改。如果你需要对数组的数据类型进行操作,numpy有很多可以使用的函数。