Comment je peux calculer la distance entre plusieurs points y compris entre le point lui-même sans utilisé deux boucles for qui sont imbriqués car ça prend le temps quand je commence à avoir plusieurs points comme 2000 points en python ?
Réponse publiée sur Quora
Vous avez vraiment besoin des distances entre tous les points ? Vous êtes sur ? C’est pour quoi ?
Parce que pour trouver par exemple le chemin le plus court entre deux points, on ne fait pas comme ça. On commence par mettre les points dans un graphe en ne reliant que les points les plus proches, par exemple avec une Triangulation de Delaunay (exemple python Delaunay graphs from geographic points ), puis on utilise un Algorithme A* par exemple, tous deux disponibles dans la librairie python NetworkX , indispensable.
Si vous essayez plutôt de simuler un système gravitationnel, avec des points qui bougent etc., alors lisez ça, il y a plein de liens python et autres :
https://drgoulu.com/2008/11/16/l…
Tous ces algorithmes sont O(n.log n) au lieu de O(n^2) comme les deux boucles imbriquées.
Dans votre cas ça veut dire 200011 opérations au lieu de 20002000. Environ 100× plus rapide. Et certaines librairies utilisent du code C compilé…

