Je suis à l'aide de python pour analyser certains fichiers volumineux et je suis en cours d'exécution dans des problèmes de mémoire, j'ai donc été à l'aide de sys.getsizeof() pour essayer de garder la trace de l'utilisation, mais c'est le comportement des matrices avec numpy est bizarre. Voici un exemple d'implication d'une carte de albédos que je vais avoir à ouvrir:
>>> 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
Bien que les données est toujours là, mais la taille de l'objet, un 3600x7200 pixel de la carte, est passé de ~200 Mo à 80 octets. J'aimerais espère que mes problèmes de mémoire sont au-dessus et juste tout convertir des tableaux numpy, mais j'ai l'impression que ce comportement, s'il était vrai, d'une certaine façon violer une loi de la théorie de l'information ou de la thermodynamique, ou quelque chose, de sorte que je suis enclin à croire que getsizeof() ne fonctionne pas avec les tableaux numpy. Des idées?