Bonjour a tous,
c'est mon premier post ici,
j'ai une bizarrerie sur python et je ne vois pas pourquoi et comment gerer ca. Quelques mots sur le contexte, je charges en memoire (dans une variable python) un fichier volumineux ~5Go (liste de donnee provenant d'une matrice de 28805x28805 elements). Bref, mon probleme est dans le chargement du fichier dans la variable, par exemple si j'execute ce code:
quand j'alloue de la memoire pour la variable, j'utilise ~ 740 Mo, et lorsque la boucle tourne pour remplir la variable data la mémoire reste constante car allouer au debut. Maintenant si j'execute ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 n = 100000000 data = [0.0] * n val = 1.25e+02 for i in xrange(n): data[n] = val
la memoire utiliser au depart est de 740 Mo a l'allocation puis ne cesse d'augmenter pendant ma boucle pour atteindre les 3.9 Go. Je penses que le probleme est que atof me retourne un flottant different du flottant utilise en allocation... qu'elle est le probleme... comment convertir ma chaine de caractere en flottant 32 bit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 from string import atof n = 100000000 data = [0.0] * n val = '1.25e+02' for i in xrange(n): data[n] = atof(val)
Une suggestion ?
Merci
Partager