在Numpy中可能会用到类似C语言中的结构体,Numpy中定义结构数组的方法也比较简单:
1 import numpy as np 2 person = np.dtype({'names':['name', 'age', 'weight'], 'formats':['S32', 'i', 'f']}) 3 p = np.arrary([("Zhang", 32, 75.5), ("Wang", 25, '60.5')], dtype=person)
字典有两个关键字:names,formats,这是必须的。names定义结构体中每个字段名,而formats则对各个字段的数据格式进行了说明:
S32:32个字节的字符串
i:32 的int类型,np.int32
f:32位的单精度浮点类型,np.float32
访问方式使用下标访问,数组内存共享。
1 p[0] 2 ('Zhang', 32, 75.5) 3 4 p[0]["name"] 5 'Zhang'
将数据保存至文件,可以使用tofile()方法,读取可以使用fromfile()方法:
1 p.tofile("d:\\test.bin") 2 b = np.fromfile("d:\\test.bin", dtype=person) #需要注明数据类型 3 c = np.matrix(b) #通过数组创建矩阵