跳转至

02 NumPy数据类型

NumPy 数据类型

NumPy 提供了比 Python 提供的数值数据类型更多的选择。以下是一些数值数据类型的列表,具体信息如下表所示。

序号 类型 描述
1 bool_ 布尔型数据类型(True 或者 False)以字节形式存储。
2 int_ 默认的整数类型(类似于 C 语言中的 long,int32 或 int64 )
3 intc 与 C 的 int 类型一样,一般是 int32 或 int 64
4 intp 用于索引的整数类型(类似于 C 的 ssize_t)
5 int8 8位整数,与字节相同。取值范围从 -128 到 127
6 int16 16位(2字节)整数,与 short 相同。取值范围从 -32768 到 32767
7 int32 32位(4字节)整数,与 int 相同。取值范围从 -2147483648 到 2147483647
8 int64 64位(8字节)整数,与 long 相同。取值范围从 -9223372036854775808 到 9223372036854775807
9 uint8 无符号的 8 位整数,取值范围从 0 到 255
10 uint16 无符号的 16 位(2 字节)整数,取值范围从 0 到 655
11 uint32 无符号的 32 位(4 字节)整数,取值范围从 0 到 4294967295
12 uint64 无符号的 64 位(8 字节)整数,取值范围从 0 到 18446744073709551615
13 float_ 默认的浮点数精度类型,与 C 的 double 相同
14 float16 半精度浮点数,共 16 位,5 位有效数字,10 位指数,1 位符号
15 float32 单精度浮点数,共 32 位,8 位有效数字,23 位指数,1 位符号
16 float64 双精度浮点数,共 64 位,11 位有效数字,52 位指数,1 位符号
17 complex_ 与 complex128 相同,默认的复数精度类型,由两个浮点数组成,表示实部和虚部
18 complex64 用于表示复数,由两个 float32 组成,实部和虚部各占 32 位
19 complex128 用于表示复数,由两个 float64 组成,实部和虚部各占 64 位

NumPy 数据类型(dtype)

NumPy 数组的所有项都是数据类型对象,也称为 NumPy 数据类型(dtype)。数据类型对象实现了与数组相对应的固定内存大小。

我们可以使用以下语法创建 dtype 对象。

import numpy as np
np.dtype(object, align, copy)

构造函数接受以下参数: - object:要转换为数据类型的对象。 - align:可以设置为布尔值。如果为 true,则会添加额外的填充以使其等效于 C 结构。 - copy:创建 dtype 对象的另一个副本。

示例 1:

import numpy as np
d = np.dtype(np.int32)
print(d)
输出:
int32

示例 2

import numpy as np
d = np.int32(i4)
print(d)
输出:
int32

创建结构化数据类型

我们可以创建类似于映射(字典)的数据类型,其中包含值之间的映射关系。例如,它可以包含员工和工资之间的映射,或者学生和年龄之间的映射等。

示例 1

import numpy as np
d = np.dtype([('salary', np.float)])
print(d)
输出:
[('salary', '<f8')]
示例 2
import numpy as np
d = np.dtype([('salary', np.float)])
arr = np.array([(10000.12,), (20000.50,)], dtype=d)
print(arr['salary'])
输出:
[(10000.12,) (20000.5 ,)]