Ich möchte Numpy-Arrays aus Binärdateien speichern und laden. Zu diesem Zweck habe ich zwei kleine Funktionen erstellt. Jede Binärdatei sollte die Dimensionalität der angegebenen Matrix enthalten.
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
Ein Beispiel für die Verwendung der Funktionen ist:
myarr=np.array([[7, 4],[3, 9],[1, 3]])
saveArrayToFile(myarr,'myfile.txt')
_featDesc, _ndesc, _ndim = readArrayFromFile('myfile.txt')
Es wird jedoch die Fehlermeldung 'ValueError: total size of new array must be unchanged' angezeigt. Meine Arrays können die Größe MxN und MxM haben. Jegliche Vorschläge sind mehr als willkommen. Ich denke, das Problem könnte in der Funktion saveArrayToFile liegen.
Beste Wünsche,
Javier