Python-Speicherauslastung von Numpy-Arrays

Ich verwende Python, um einige große Dateien zu analysieren, und es treten Speicherprobleme auf. Daher verwende ich sys.getsizeof (), um die Verwendung zu verfolgen, aber das Verhalten bei numpy-Arrays ist bizarr. Hier ist ein Beispiel mit einer Karte von Albedos, die ich öffnen muss:

>>> import numpy as np
>>> import struct
>>> from sys import getsizeof
>>> f = open('Albedo_map.assoc', 'rb')
>>> getsizeof(f)
144
>>> albedo = struct.unpack('%df' % (7200*3600), f.read(7200*3600*4))
>>> getsizeof(albedo)
207360056
>>> albedo = np.array(albedo).reshape(3600,7200)
>>> getsizeof(albedo)
80

Nun, die Daten sind immer noch da, aber die Größe des Objekts, einer Karte mit 3600 x 7200 Pixeln, ist von ~ 200 MB auf 80 Byte gestiegen. Ich würde gerne hoffen, dass meine Speicherprobleme vorbei sind und einfach alles in numpige Arrays konvertieren, aber ich habe das Gefühl, dass dieses Verhalten, wenn es zutrifft, in irgendeiner Weise gegen ein Gesetz der Informationstheorie oder Thermodynamik verstoßen würde, also bin ich geneigt zu glauben, dass getsizeof () nicht mit numpy Arrays funktioniert. Irgendwelche Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage