将高级numpy数组导入/导出到文本文件

时间:2014-10-10 18:45:26

标签: python numpy io multidimensional-array

我有一个排名较高的numpy.ndarray - 例如,形状(100,100,100,2)。将它写入文本文件的最佳方法是什么,以便在其他程序中轻松导入以及numpy?

2 个答案:

答案 0 :(得分:0)

如果展平数组并在标题中包含数组形状,则可以使用np.savetxt,这是第一行。这样你知道如何在其他程序中打开数组时重新整形数组:

import numpy as np
a = np.random.rand(100,100,100,2)
np.savetxt('test.txt', a.flatten(), header=str(a.shape))

要导入数据并对其进行整形,您可以执行以下操作,例如:

import re
with open('test.txt') as f:
    shape = tuple(int(num) for num in re.findall(r'\d+', f.readline()))
data = np.loadtxt('test.txt').reshape(shape)

答案 1 :(得分:0)

您可以使用tofile,也是numpylink to doc)的一部分。要阅读二进制文件,只需使用fromfiledoc here

我不确定可移植性,但如果速度很重要,那么编写二进制文件是更好的选择。

import numpy as np
a = np.random.rand(100,100,100,2)
a.tofile('test.txt')