NumPy 数据类型和转换
Jinku Hu
2023年1月30日
2018年7月13日
NumPy 里面的数据类型 dtype
跟 Python 内置的数据类型有一些不同的地方,它有精度更高的类型,这跟它用于数据计算的特性是相关的。
NumPy 的数据类型
类型 | 说明 |
---|---|
bool |
布尔型 |
int8 |
8 位有符号整数 |
int16 |
16 位有符号整数 |
int32 |
32 位有符号整数 |
int64 |
64 位有符号整数 |
uint8 |
8 位无符号整数 |
uint16 |
16 位无符号整数 |
uint32 |
32 位无符号整数 |
uint64 |
64 位无符号整数 |
float16 |
16 位浮点数 |
float32 |
32 位浮点数 |
float64 |
64 位浮点数 |
complex64 |
64 位复数 |
complex128 |
128 位复数 |
在新建一个 ndarray
数据时,你可以通过字符串或者 NumPy
库里面的数据类型常量来制定元素的数据类型
import numpy as np
# 通过字符串来指定数据类型
test = np.array([4, 5, 6], dtype='int64')
#通过 np 内的常量来指定
test = np.array([7, 8, 8], dtype=np.int64)
数据类型转换
在实例创建好了之后,可以通过数据类型转换方法 astype()
将元素的类型变成另外的一种,比如从整型变到浮点型,等等。
>>> import numpy as np
>>> test = np.array([11, 12, 13, 14], dtype="int32")
>>> x = test.astype('float32')
>>> x
array([11., 12., 13., 14.], dtype=float32)
>>> test, test.dtype
(array([11, 12, 13, 14]), dtype('int32'))
注意
数据类型转换方法只会返回一个全新的数组,而原数组实例的数据和信息并没有改变。
Author: Jinku Hu
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn