Partage
  • Partager sur Facebook
  • Partager sur Twitter

Eviter des boucles for avec "numpy" tableaux

    5 décembre 2015 à 18:44:34

    void

    -
    Edité par Crazy digger 7 décembre 2015 à 3:08:22

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      6 décembre 2015 à 10:59:39

      Dans la documentation officielle de numpy, il y a un exemple de mandelbrot, si ça peut t'aider...

      • Partager sur Facebook
      • Partager sur Twitter
        6 décembre 2015 à 18:05:53

        void

        -
        Edité par Crazy digger 7 décembre 2015 à 3:08:36

        • Partager sur Facebook
        • Partager sur Twitter
          7 décembre 2015 à 12:22:01

          @AlexandreJudet (alias Crazy digger): Tu as fait une fausse manip, et sans faire exprès tu as effacé tes 2 messages smiley. Pour t'aider, je remets le 1er ici (merci qui smiley):

          AlexandreJudet (alias Crazy digger) a écrit:

          Bonjour à tous,

          Je dois réaliser un projet en Python 2.7 sur les ensembles de Mandelbrot et Julia.

          Voici mon code pour visualiser l'ensemble de Mandelbrot. L'algorithme initialement demandé me donne le code suivant :

          import matplotlib.pyplot as plt
          import numpy as np

          #Variables

          N = 200 #Nombre de points dans chacune des deux directions
          nmax = 50 #Nombre maximum d'itérations
          #Bornes de la fenetre dans le corps des complexes
          xmin = -1.5 
          xmax = 1.5
          ymin = -1.5
          ymax = 1.5

          r = 2 #Seuil de convergence

          #Pas dans chacune des deux directions
          dx = (xmax - xmin)/(N-1)
          dy = (ymax - ymin)/(N-1)

          #Vecteurs d'abscisses xk et d'ordonnées ym
          xk = np.linspace(xmin, xmax, N)
          ym = np.linspace(ymin, ymax, N)

          #Initialisation de la suite (Un) et de z
          U=np.zeros(N,dtype=complex)
          z = np.zeros((N,N))

          i = complex(0,1)


          for k in range(0, N):
              
              for m in range(0,N):
                  
                  U[0] = 0
                  n = 0
                  
                  while (n <= nmax and abs(U[n])<r) :
                      U[n+1] = U[n]*U[n] + xk[k] + i*ym[m]
                      n += 1
                      
                      
                  z[k][m] = n
              
                  


          #Affichage

          plt.imshow(z,extent=[xmin,xmax,ymin,ymax])
          plt.colorbar()
          plt.show()

          On me demande maintenant de modifier mon code à l'aide des fonctions fournies par le module numpy pour éviter les boucles for sur k et m afin d'améliorer la vitesse d'exécution de mon programme. On me demande d'ailleurs de comparer les deux programmes avec timeclock().

          Quelqu'un pourrait-il m'aider à faire cela ? Je commence en Python et ai beaucoup de mal à comprendre ce que je pourrai utiliser dans numpy pour le faire.

          Merci de votre aide !

          -
          Edité par Olygrim 7 décembre 2015 à 12:33:46

          • Partager sur Facebook
          • Partager sur Twitter
          Précepte: Le mieux est l'ennemi du bien
          Anonyme
            7 décembre 2015 à 13:07:22

            Olygrim a écrit:

            Tu as fait une fausse manip, et sans faire exprès tu as effacé tes 2 messages smiley.

            Oh c'est ballot ça... Sûrement un bug du forum ! smiley

            • Partager sur Facebook
            • Partager sur Twitter
              7 décembre 2015 à 22:22:41

              Genre le type flippe qu'une personne ait le même problème que lui un jour ? ...

              • Partager sur Facebook
              • Partager sur Twitter

              Eviter des boucles for avec "numpy" tableaux

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown