【发布时间】:2016-08-15 23:57:13
【问题描述】:
假设我有三个向量 a、b 和 c:
a = np.array([1,2,3])
b = np.array([1.2, 3.2, 4.5])
c = np.array([True, True, False])
将其转换为具有不同数据类型和列标签的矩阵d 的最简单方法是:
d = ([[1, 1.2, True],
[2, 3.2, True],
[3, 4.5, False]],
dtype=[('aVals','i8'), ('bVals','f4'), ('cVals','bool')])
这样我就可以将此矩阵保存到.npy 文件中,并在打开它后访问数据;
>>> d = np.load('dFile')
>>> d['aVals']
np.array([1,2,3], dtype = [('aVals', '<i8)])
我使用 cimple column_stack 创建矩阵,但我在试图弄清楚如何包含数据类型和列名时感到头疼,因为 column_stack 不接受 dtype 参数,而我在执行column_stack 之后,看不到添加字段名称和数据类型的方法。值得一提的是,向量a、b 和c 在创建时没有明确的数据类型声明,如上所示。
【问题讨论】:
-
顺便说一句,如果您这样做只是为了保存数组,您可以使用
np.savez(outfile, aVals=a, bVals=b, cVals=c)将所有三个数组保存到压缩的 npz 文件中。