我有一个排名较高的numpy.ndarray - 例如,形状(100,100,100,2)
。将它写入文本文件的最佳方法是什么,以便在其他程序中轻松导入以及numpy?
答案 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
,也是numpy
(link to doc)的一部分。要阅读二进制文件,只需使用fromfile
,doc here。
我不确定可移植性,但如果速度很重要,那么编写二进制文件是更好的选择。
import numpy as np
a = np.random.rand(100,100,100,2)
a.tofile('test.txt')