tableau 2D, fichier binaire (debutant)
Salut à tous,
Je programme depuis longtemps en C et je débute actuellement en python. Je suis un peu surpris de sécher aussi rapidement... désolé si la question semble basique, mais je n'ai pas trouvé de solution claire à mon problème.
J'ai un fichier binaire dans lequel il y a un "tableau" 2D de nombres (float) d'une taille (nx+1) et (ny+1) dans l'une et l'autre dimension, respectivement. le fichier est écrit par un programme C.
Mes problèmes :
- je n'ai pas compris comment créer un tableau 2D "vide" en python. Je pense savoir créer un tableau 2D genre [[2,3,5],[4,2,1]] mais pour un tableau 1024*1024 élements, je ne vois pas comment le créer.
- J'ai compris que fichier.read() allait me retourner une chaine de caractère à partir de mon fichier binaire. Je suis pas sûr de savoir comment transférer mes données dans un tableau 2D ?
Est-ce que tout ça est possible "simplement" en python de base, où est-ce qu'il faut que j'aille vers quelque chose de pus haut niveau genre "numpy" ?
voici un code C produisant un fichier binaire que j'aimerai relire en python :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float *array;
int nx, ny;
int i, j, ij;
FILE *fp;
nx = 1024;
ny = 512;
fp = fopen("array.dat","w");
array = calloc((nx+1)*(ny+1), sizeof(*array));
for (i=0; i<nx+1; i++)
{
for (j=0; j<ny+1; j++)
{
ij = i + j*(nx+1);
array[ij] = ij;
}
}
fwrite (array,sizeof(*array),(nx+1)*(ny+1),fp);
fclose(fp);
free(array);
return 0;
} |
Merci beaucoup si qqn peut m'aiguiller vers des exemples/solutions