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

Him*_*ima 6 python arrays file-io numpy multidimensional-array

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

我担心的是,如果我在存储时给出任何分隔符,我是否需要在检索时给予一些处理?再加上浮动并以相同的格式检索它并不是一件小事.

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

Sau*_*tro 4

如果需要将多维数组保存在文本文件中,可以使用参数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=',')
Run Code Online (Sandbox Code Playgroud)

要加载这个数组,你可以这样做:

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