1、Numpy
Python 的扩展库(数学函数库),主要用于数组计算。
- N维数组对象ndarray
- 广播功能函数
- 整合C/C++/Fortran代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
通常与SciPy(开源算法库和数学工具包)和Matplotlib(绘图库)一起使用,替代matlab。
2、Ndarray对象
Ndarray是一系列同类型数据的集合,以0下表为开始进行集合中元素的索引。
组成
- 一个指向数据(内存或内存映射文件中的一块数据)的指针;
- 数据类型或dtype,描述在数组中的固定大小值的格子;
- 一个表示数组形状(shape)的元组,表示各维度大小的元组;
- 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要跨过的字节数。
3、数据类型
Numpy的数据类型是dtype对象的实例,并对应唯一的字符。
内置类型:
bool_
Int_、intc、intp、int8(-128to127)、int32(整数-2147483648 to 2147483647)、int64、uint16(0 to 255)、uint16(0 to 65535)、uint32(0 to 4294967295)、uint64(0 to 18446744073709551615)
float_、float16、float32、float64
complex_(128位复数)、complex64(双32位浮点数)、complex128(双64位浮点数)
内置类型唯一定义它的字符代码:
b布尔型
i整形
u无符号整形
f浮点型
c复数浮点型
m时间间隔
M日期间隔
O(python)对象
a字符串
U Unicode
V原始数据
数据类型对象(dtype)
- 用来描述与数组对应的内存区域如何使用:
- 数据的类型
- 数据的大小
- 数据的字节顺序(大小端)
- 结构化类型:字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
- 子数组:形状和数据类型
创建数据类型对象
numpy.dtype(object,align,copy)
object:要转换为数据类型对象
align:(true)填充字段使其类似C的结构体
copy:复制dtype对象,如果为false,则是对内置数据类型对象的引用
例:
直接创建数据类型对象
import numpy as np#对numpy重命名
dt = np.dtype(np.int32)
print(dt)#输出dt
print(type(dt))#输出dt的类型
用符号代替创建
import numpy as np#对numpy重命名
#用字符串代替np.
dt = np.dtype('i4')#i1-int8,i2-int16,i4-int32,i8-int64
print(dt)#输出dt
print(type(dt))#输出dt的类型
小端访问
import numpy as np#对numpy重命名
#小端访问<
dt = np.dtype('<i4')
print(dt)#输出dt
print(type(dt))#输出dt的类型
输出:
int32 <class 'numpy.dtype[int32]'>
结构化数据类型
import numpy as np#对numpy重命名
#结构化数据类型
student = np.dtype([("name","S20"),("age",'i4'),('marks','f4')])
print(student)
print(type(student))
输出:
[('name', 'S20'), ('age', '<i4'), ('marks', '<f4')] <class 'numpy.dtype[void]'>