使用带有多维数组的np.savetxt和np.loadtxt

时间:2014-10-07 10:48:21

标签: python arrays file-io numpy multidimensional-array

使用ndim > 2np.savetxt将多维2维数组(np.loadtxt)存储到文件并以相同格式(维度)检索文件的通用方法是什么?< / p>

我担心的是,如果我在存储时给出任何分隔符,我是否需要在检索时给予一些处理?另外处理浮动并以相同的格式检索它也不是很棘手。

我在文档中看到了很多简单的例子。我只是想知道是否可以使用简单的np.savetxt(filename, array)来检索最简单的存储array = np.loadtxt(filename)

1 个答案:

答案 0 :(得分:3)

如果需要在文本文件中保存多维数组,可以使用header参数保存原始数组形状:

import numpy as np

a = np.random.random((2, 3, 4, 5))

header = ','.join(map(str, a.shape))
np.savetxt('test.txt', a.reshape(-1, a.shape[-1]), header=header,
           delimiter=',')

要加载此数组,您可以执行以下操作:

with open('test.txt') as f:
    shape = map(int, f.next()[1:].split(','))
    b = np.genfromtxt(f, delimiter=',').reshape(shape)