Uso de memoria Python de matrices numpy

Estoy usando python para analizar algunos archivos grandes y tengo problemas de memoria, por lo que he estado usando sys.getsizeof () para intentar realizar un seguimiento del uso, pero su comportamiento con matrices numpy es extraño. Aquí hay un ejemplo que incluye un mapa de albedos que tengo que abrir:

>>> 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

Bueno, los datos siguen ahí, pero el tamaño del objeto, un mapa de 3600x7200 píxeles, ha pasado de ~ 200 Mb a 80 bytes. Me gustaría tener la esperanza de que mis problemas de memoria hayan terminado y simplemente convertir todo a múltiples arreglos, pero siento que este comportamiento, si es cierto, violaría de alguna manera alguna ley de la teoría de la información o la termodinámica, o algo así, inclinado a creer que getsizeof () no funciona con matrices numpy. ¿Algunas ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta