2 Stimmen

Speichern/Laden von Numpy-Arrays aus Binärdateien

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

2voto

unutbu Punkte 769083

Utilisez numpy.save (y numpy.load ), um Numpy-Arrays in eine Binärdatei zu dumpen (abzurufen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X