Bonjour tout le monde,
Jusqu'à présent j'utilisais python uniquement pour tracer des courbes de manière automatique. Habitué à fortran pour le calul, il y a un truc qui ne veut pas rentrer lorsque je veux manipuler un tableau numpy.
Voici ce que j'aimerais faire : j'ai un fichier de données qui contient 4 colonnes :
En gros, pour chaque ID je voudrais tester s'il existe un autre ID qui se trouve à une distance inférieure à un seuil : sqrt(x²+y²+z²) < seuil, avec x y et z les différences entre les coordonnées des deux ID considérés. Si la distance est inférieure, je veux créer un tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ID x y z 1 x1 y1 z1 2 x2 y2 z2 etc.
pour pouvoir ensuite tracer un histogramme en fonction de la position. (si ce je ne suis pas clair, je pourrais détailler un peu plus)
Code : Sélectionner tout - Visualiser dans une fenêtre à part ID x y z nombre_de_ID_inférieurs_au_seuil
En fortran je ferais deux boucles sur les ID et je calculerais la distance entre tous les ID et via un compteur j'ajouterais le nombre d'ID répondant au critère dans une 4e colonne du tableau. J'imagine que ça fonctionnerait en Python aussi. Le hic c'est que mes fichiers sont énormes (plusieurs dizaines de Go) et ça va prendre 3 plombes si je le fais de cette manière en Python. Je sais qu'il faut éviter ce genre de boucle, mais je n'arrive pas à comprendre la syntaxe.
Merci d'avance !
Partager