【发布时间】:2010-06-16 11:03:20
【问题描述】:
我想从二进制文件中存储和加载 numpy 数组。为此,我创建了两个小函数。每个二进制文件都应该包含给定矩阵的维数。
def saveArrayToFile(data, fileName):
with open(fileName, 'w') as file:
a = array.array('f')
nSamples, ndim = data.shape
a.extend([nSamples, ndim]) # write number of elements and dimensions
a.fromstring(data.tostring())
a.tofile(file)
def readArrayFromFile(fileName):
_featDesc = np.fromfile(fileName, 'f')
_ndesc = int(_featDesc[0])
_ndim = int(_featDesc[1])
_featDesc = _featDesc[2:]
_featDesc = _featDesc.reshape([_ndesc, _ndim])
return _featDesc, _ndesc, _ndim
如何使用函数的一个例子是:
myarr=np.array([[7, 4],[3, 9],[1, 3]])
saveArrayToFile(myarr,'myfile.txt')
_featDesc, _ndesc, _ndim = readArrayFromFile('myfile.txt')
但是,会显示“ValueError:新数组的总大小必须保持不变”的错误消息。我的数组大小可以是 MxN 和 MxM。任何建议都非常受欢迎。 我认为问题可能出在 saveArrayToFile 函数中。
祝你好运,
哈维尔
【问题讨论】:
标签: python file binaryfiles