NumPy教程-NumPy 数据类型
NumPy 提供了比 Python 提供的数值数据类型更多的选择。以下是一些数值数据类型的列表,具体信息如下表所示。
序号 | 数据类型 | 描述 |
---|---|---|
1 | bool_ | 代表布尔值,表示真或假。以字节形式存储。 |
2 | int_ | 默认整数类型。与 C 语言中的 long 类型相同,包含 64 位或 32 位整数。 |
3 | intc | 类似于 C 整数 (c int),表示 32 位或 64 位整数。 |
4 | intp | 用于索引的整数类型。 |
5 | int8 | 8 位整数,与字节相同。取值范围为 -128 到 127。 |
6 | int16 | 2 字节 (16 位) 整数,取值范围为 -32768 到 32767。 |
7 | int32 | 4 字节 (32 位) 整数,取值范围为 -2147483648 到 2147483647。 |
8 | int64 | 8 字节 (64 位) 整数,取值范围为 -9223372036854775808 到 9223372036854775807。 |
9 | uint8 | 1 字节 (8 位) 无符号整数。 |
10 | uint16 | 2 字节 (16 位) 无符号整数。 |
11 | uint32 | 4 字节 (32 位) 无符号整数。 |
12 | uint64 | 8 字节 (64 位) 无符号整数。 |
13 | float_ | 与 float64 相同。 |
14 | float16 | 半精度浮点数。5 位用于指数,10 位用于尾数,1 位用于符号。 |
15 | float32 | 单精度浮点数。8 位用于指数,23 位用于尾数,1 位用于符号。 |
16 | float64 | 双精度浮点数。11 位用于指数,52 位用于尾数,1 位用于符号。 |
17 | complex_ | 与 complex128 相同。 |
18 | complex64 | 用于表示复数,实部和虚部各占 32 位。 |
19 | complex128 | 用于表示复数,实部和虚部各占 64 位。 |
NumPy 数据类型(dtype)
NumPy 数组的所有项都是数据类型对象,也称为 NumPy 数据类型(dtype)。数据类型对象实现了与数组相对应的固定内存大小。
我们可以使用以下语法创建 dtype 对象。
numpy.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 ,)]