Użycie pamięci numerycznej przez Pythona

Używam pythona do analizowania niektórych dużych plików i uruchamiam problemy z pamięcią, więc używam sys.getsizeof (), aby próbować śledzić użycie, ale to zachowanie z tablicami numpy jest dziwne. Oto przykład dotyczący mapy albedos, którą muszę otworzyć:

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

Cóż, dane wciąż tam są, ale rozmiar obiektu, mapa 3600x7200 pikseli, zmienił się z ~ 200 Mb na 80 bajtów. Chciałbym mieć nadzieję, że moje problemy z pamięcią się skończyły i po prostu przekonwertować wszystko na tablice numpy, ale uważam, że to zachowanie, jeśli jest prawdziwe, w jakiś sposób naruszyłoby prawo teorii informacji lub termodynamiki, czy coś, więc jestem skłonni wierzyć, że getsizeof () nie działa z tablicami numpy. Jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion