IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

valeur aléatoire dans un boucle


Sujet :

Python

  1. #21
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par samirahal Voir le message
    Vous me conseiller d'utiliser les fonctions et operations des pandas.DataFrame genre ( pandas.DataFrame.compare etc..) ou bien de travailler sur les listes avec des boucles
    Vous devriez savoir le faire avec des listes (simples ou "de listes") et des boucles.
    Mais quel est l'intérêt d'avoir un tableau 2D sous la forme de dataframes Pandas si vous n'envisagez pas d'utiliser les fonctionnalités de Pandas?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  2. #22
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vous devriez savoir le faire avec des listes (simples ou "de listes") et des boucles.
    Mais quel est l'intérêt d'avoir un tableau 2D sous la forme de dataframes Pandas si vous n'envisagez pas d'utiliser les fonctionnalités de Pandas?

    - W
    Merci wiztricks pour ton retour, j'envisage utiliser les fonctionnalités de Pandas

  3. #23
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Bonjour
    J'ai avancé un peu mais je suis de nouveau bloqué je veux partager avec vous l'état d'avancement en espérant trouver de l'aide et surtout des conseils et pistes à suivre

    Le fichier principal pou tester le resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import pandas as pd 
    import numpy as np 
    import random as rand
    from tableau import *
    from comparaison import *
    bigTable = creationtab2()
    smallTable = creationtab1()
    comparaison(bigTable,smallTable)
    Le code qui génère les tableaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
    43
     
    import pandas as pd 
    import numpy as np 
    import random as rand
     
     
    def creationtab1():
       tabnumber = 1
       maliste = []
       for loop in range(tabnumber): 
          listetab = []
          ligneumber = 1
          lignename = str('tab' + str(loop +1))
          for loop in range(ligneumber):
             tb=[rand.randint(2,10),rand.randint(3,15),rand.randint(10,30),0]
             listetab.append(tb)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              tab_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['val1', 'val2', 'val3', 'val4'])
          maliste.append(tab_df)               
       return maliste
     
     
     
    def creationtab2():
       for loop in range(1): 
          listetab = []
          ligneumber = 1
          print("++++++++ Big Tab++++++++") 
          lignename = str('Bigtab' + str(loop +1))
          for loop in range(ligneumber):
             bigtab=[rand.randint(1000,10000),rand.randint(2000,10000),rand.randint(2000,5000),1 ]
             listetab.append(bigtab)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)   
              panda_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = [lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['val1', 'val2', 'val3', 'val4'])         
       return panda_df
    Le code qui compare les tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    from random import random
    import pandas as pd
    import numpy as np 
     
     
    def comparaison(bigTab,smallTab):
     print(bigTab)
     bigindex = bigTab.index
     for ind in bigindex:
      valrb1 = bigTab.loc[ind, 'val1']
      valrb2 = bigTab.loc[ind, 'val2']
      valrb3 = bigTab.loc[ind, 'val3']
      valrb4 = bigTab.loc[ind, 'val4']
     i=0
     for pand in smallTab:
         NewBigTab=[]
         NewSmallTab=[]
         print("++++++++ Tab num:", i+1 ,"++++++++")    
         print(pand)
         smallindex = pand.index
         for li in smallindex:
          val1 =pand.loc[li,'val1']
          val2 =pand.loc[li,'val2']
          val3 = pand.loc[li,'val3']
          val4 = bigTab.loc[ind, 'val4'] 
          is_solution =(valrb1 > val1 and valrb2 > val2 and valrb3 > val3)
          if is_solution:
              valrb1 = valrb1-val1
              valrb2 = valrb2-val2
              valrb3 = valrb3-val3
              NewBigTab.append(valrb1)
              NewBigTab.append(valrb2)
              NewBigTab.append(valrb3)
              NewSmallTab.append(val1)
              NewSmallTab.append(val2)
              NewSmallTab.append(val3)
              NewSmallTab.append(val4)
              print("++++++++++++Le tableau final NewBigtab est: ++++")
              for loop in range(1): 
                  listetab = []
                  ligneumber = 1
                  lignename = str('tab' + str(loop +1))
                  for loop in range(ligneumber):
                      listetab.append(NewSmallTab)  
                      for loop in range(ligneumber):  
                        numpyArray = np.array(listetab)   
                        tab_df = pd.DataFrame(data = numpyArray[0:, 0:], 
                            index = ['ligne' + str(i + 1) + "_" + lignename
                            for i in range(numpyArray.shape[0])], 
                            columns = ['val1', 'val2', 'val3','val4'])
          print(tab_df)                
     i+=1
    Le résultat actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ++++++++ Big Tab++++++++
             val1  val2  val3  val4
    Bigtab1  5931  3918  3435     1
    ++++++++ Tab num: 1 ++++++++
                 val1  val2  val3  val4
    ligne1_tab1     9     8    30     0
    ++++++++++++Le tableau final NewBigtab est: ++++
                 val1  val2  val3  val4
    ligne1_tab1     9     8    30     1
    Mon objectif maintenant est d'appliquer le même code sur un nombre aléatoire des tableaux et répeter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    is_solution =(valrb1 > val1 and valrb2 > val2 and valrb3 > val3)
    jusqu'a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    valrb1, valrb2 et valrb3 = 0
    puis regrouper les petits tableaux dans un grand tableau comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ++++++++++++Le tableau final NewBigtab est: ++++
                 val1  val2  val3  val4
    ligne1_tab1     9     8    30     1
    Je sais que c'est devenu anarchique mais j'essaye d'expliquer le maximum possible pour trouver une solution

  4. #24
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par samirahal Voir le message
    Je sais que c'est devenu anarchique mais j'essaye d'expliquer le maximum possible pour trouver une solution
    Désolé de me répéter mais si au bout du compte on se retrouve à comparer 2 tableaux pandas de la même manière qu'on le ferait pour des listes de listes, pandas ne sert à rien.... Et votre code serait bien plus simple sans.

    Après vous faites un peu ce que vous voulez de votre temps (et moi du mien) mais plutôt qu'inventer vos propres exercices (dont la finalité est discutable) peut être serait-il plus judicieux d'essayer de faire les exercices proposés dans les tutos (il y a des tutos sur pandas).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #25
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Désolé de me répéter mais si au bout du compte on se retrouve à comparer 2 tableaux pandas de la même manière qu'on le ferait pour des listes de listes, pandas ne sert à rien.... Et votre code serait bien plus simple sans.

    Après vous faites un peu ce que vous voulez de votre temps (et moi du mien) mais plutôt qu'inventer vos propres exercices (dont la finalité est discutable) peut être serait-il plus judicieux d'essayer de faire les exercices proposés dans les tutos (il y a des tutos sur pandas).

    - W
    J'utilise des dataframe Pandas pour avoir des labels pour les valeurs des listes

  6. #26
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 874
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par samirahal Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     for ind in bigindex:
      valrb1 = bigTab.loc[ind, 'val1']
      valrb2 = bigTab.loc[ind, 'val2']
      valrb3 = bigTab.loc[ind, 'val3']
      valrb4 = bigTab.loc[ind, 'val4']

    Mon objectif maintenant est d'appliquer le même code sur un nombre aléatoire des tableaux et répeter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    is_solution =(valrb1 > val1 and valrb2 > val2 and valrb3 > val3)
    jusqu'a valrb1, valrb2 et valrb3 = 0
    Tout ensemble de variables ressemblant de près ou de loin à un tableau, style xxx_1=truc; xxx_2=chose; xxx_3=machin puis ensuite des tests sur l'égalité de ces variables, style if xxx_1 == 0 and xxx_2 == 0 and xxx_3 == 0: ok ça doit s'écrire en vrai tableau. Ah oui, il faut un peu se creuser le citron au début mais au résultat on y gagne
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xxx=[truc, chose, machin]
    for x in xxx:
    	if x != 0: break
    else: ok

    Si demain tu veux un xxx_4=other te suffit de le rajouter dans xxx=[truc, chose, machin, other] et c'est tout, tout le reste du code s'y adapte automatiquement.

    Tu aurais appliqué ce principe dès le départ tu n'aurais aucun souci pour gérer un nombre de tableaux totalement variable/aléatoire. Oui, cela signifie qu'il faut avoir un tableau de tableaux et alors? Si tu sais gérer un tableau d'int, tu sauras tout aussi bien gérer un tableau de list.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    valrb=list()
    for (i, ind) in enumerate(bigindex, 1):
    	valrb.append(bigTab.loc[ind, 'val%d' % i])
    Et ça peut même se faire en une ligne quand tu connaitras les listes en intension.

    Citation Envoyé par samirahal Voir le message
    Je sais que c'est devenu anarchique
    Oui, je confirme

    Citation Envoyé par samirahal Voir le message
    mais j'essaye d'expliquer le maximum possible pour trouver une solution
    Et voilà, au lieu de réfléchir à "comment je dois coder ça" ça devient "comment je peux expliquer ce que je veux à des tiers qui ne sont pas dans ma tête et qui, quoi qu'il arrive, ne pourront avoir qu'une version déformée de ce que à quoi je pense...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #27
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Merci Sve@r pour ces pistes

  8. #28
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par samirahal Voir le message
    J'utilise des dataframe Pandas pour avoir des labels pour les valeurs des listes
    Si c'est juste pour avoir des chaînes de caractères en fonction de l'indice de la ligne ou de la colonne, c'est juste utile pour l'affichage et normalement vous devriez savoir les fabriquer "à la volée".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #29
    Invité
    Invité(e)
    Par défaut
    Salut !

    Ton code est pas terrible...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          for loop in range(ligneumber):
             tb=[rand.randint(2,10),rand.randint(3,15),rand.randint(10,30),0]
             listetab.append(tb)       
          for loop in range(ligneumber):  
              numpyArray = np.array(listetab)
    Pourquoi 2 fois la même boucle ? Pourquoi créer numpyArray à chaque itération ? ...

    Et sinon je t'invite à avancer du côté des compréhensions de listes à nouveau, ça limiterait le nombre de ligne et ça rendrait le script plus performant.

    Mieux vaut faire if valrb1 > val1 and valrb2 > val2 and valrb3 > val3 : directement, c'est également plus performant pour 2 raisons : la condition renverra faux dès qu'il y a une condition fausse et le résultat n'est pas stocké dans une variable.


    Sinon je comprends pas trop ce que tu veux faire...
    ??
    Dernière modification par Invité ; 14/09/2022 à 12h08.

  10. #30
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 874
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Mieux vaut faire if valrb1 > val1 and valrb2 > val2 and valrb3 > val3 : directement, c'est également plus performant pour 2 raisons : la condition renverra faux dès qu'il y a une condition fausse et le résultat n'est pas stocké dans une variable. Un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    >>> v0 = 0
    >>> v1 = 1
    >>> v2 = 2
    >>> v3 = 3
    >>> v4 = 4
     
    >>> v1 < v0 and v4 > v5
    False
     
    >>> v5
    Traceback (most recent call last):
      File "<pyshell#19>", line 1, in <module>
        v5
    NameError: name 'v5' is not defined. Did you mean: 'v0'?
     
    >>> resultat = (v1 > v0 and v4 > v5)
    Traceback (most recent call last):
      File "<pyshell#21>", line 1, in <module>
        v = (v1 > v0 and v4 > v5)
    NameError: name 'v5' is not defined. Did you mean: 'v0'?
     
    >>> if v1 < v0 and v4 > v5 :
    ...     'ok'
    ... 
    ...     
    #Pas de message d'erreur
    J'ai bon Wiz ou Sve@r ?
    Non, ton second exemple >>> resultat = (v1 > v0 and v4 > v5) n'est pas le même que le premier >>> v1 < v0 and v4 > v5. Et il se trouve que v1 est bel et bien supérieur à v0 donc Python continue l'évaluation sur v5.
    Que tu testes directement l'expression ou que tu la mettes dans une variable, l'évaluation s'arrête dès qu'une certitude est atteinte. Reste effectivement que stocker l'expression dans une variable puis tester la variable est peu utile si la variable n'est utilisée qu'une seule fois.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #31
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    J'ai bon Wiz ou Sve@r ?[/CODE]
    Il faut simplifier l'exemple pour le réduire à ce qu'on veut démontrer et éventuellement décomposer...
    Si je dis dans une condition ET (ou OU), on s'arrête d'évaluer dès qu'elle est VRAIE ou FAUSSE, pas besoin de faire compliqué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> True and XX
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'XX' is not defined
    >>> False and XX
    False
    >>>
    Je n'arrive pas à imaginer que l'évaluation d'une expression booléenne se fasse différemment en écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    a = expression
    if a:
         ...
    a la place de
    Si c'était le cas, je dirais qu'il y a un "gros bug" (dans le langage).

    Mais on peut tester et se faire avoir par la complication de ses tests pour aboutir à des conclusions fausses: ça arrive tous les jours... Et c'est ce que j'appelle la "rigueur" (des mathématiciens) qui permet d'être en alerte pour "simplifier", reposer le problème autrement,...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #32
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Non, ton second exemple >>> resultat = (v1 > v0 and v4 > v5) n'est pas le même que le premier >>> v1 < v0 and v4 > v5. Et il se trouve que v1 est bel et bien supérieur à v0 donc Python continue l'évaluation sur v5.
    .
    Oh le boulet !

    Citation Envoyé par Wiz
    Je n'arrive pas à imaginer que l'évaluation d'une expression booléenne se fasse différemment
    J'trouvais ça un peu zarb' mais je me disais que l'assignation dans une variable nécessitait peut-être de parcourir toute l'évaluation...
    Dernière modification par Invité ; 14/09/2022 à 14h33.

  13. #33
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Merci, au fait je veux réaliser des statistiques et des courbe donc ca sera plus simple avec des pandas en utilisant matplotlib ou seaborn je crois

    Citation Envoyé par LeNarvalo Voir le message
    Oui je suis entrain de suivre un tuto et faire des exercices sur les listes
    pour tester avec un seul tableau car dans le résultat final je doit avoir un nombre aléatoire au lieu d'un seul mais ça marche pas pour le moment qu'avec un seul

  14. #34
    Invité
    Invité(e)
    Par défaut
    Tu te rends bien compte que faire for loop in range(1) ne sert à rien ?
    Autant faire loop = 0 mais dans la suite du code ça ne sert pas à grand chose... Je te laisse faire le constat par toi même.


    Essaye peut-être de clarifier/simplifier/décomposer ton script pour y voir plus clair, mettre 4 boucles imbriquées c'est bien si on maitrise le truc.

    Tu peux par exemple faire une fonction pour créer un tableau de façon aléatoire, une fonction pour créer un nombre aléatoire de tableau à partir de la fonction précédente, une fonction pour gérer Pandas, une fonction pour extraire chaque tableau, une fonction pour faire tes comparaisons pour chaque tableau, une autre fonction pour afficher le résultat de la comparaison, etc.
    Dernière modification par Invité ; 16/09/2022 à 22h04.

  15. #35
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 874
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Tu te rends bien compte que faire for loop in range(1) ne sert à rien ?
    Ca sert quand tu veux tester que ça marche pour "un" avant de remplacer range(1) par range(x). C'est ce que je comprends quand il dit "pour tester avec un seul tableau", je complète alors implicitement par "avant d'en mettre 100000".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #36
    Invité
    Invité(e)
    Par défaut
    Ok !

  17. #37
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ca sert quand tu veux tester que ça marche pour "un" avant de remplacer range(1) par range(x). C'est ce que je comprends quand il dit "pour tester avec un seul tableau", je complète alors implicitement par "avant d'en mettre 100000".
    c'est exactement ça

  18. #38
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Tu te rends bien compte que faire for loop in range(1) ne sert à rien ?
    Autant faire loop = 0 mais dans la suite du code ça ne sert pas à grand chose... Je te laisse faire le constat par toi même.


    Essaye peut-être de clarifier/simplifier/décomposer ton script pour y voir plus clair, mettre 4 boucles imbriquées c'est bien si on maitrise le truc.

    Tu peux par exemple faire une fonction pour créer un tableau de façon aléatoire, une fonction pour créer un nombre aléatoire de tableau à partir de la fonction précédente, une fonction pour gérer Pandas, une fonction pour extraire chaque tableau, une fonction pour faire tes comparaisons pour chaque tableau, une autre fonction pour afficher le résultat de la comparaison, etc.
    d'accord ! je vais commencer par décomposer le problème et faire des fonctions séparées et plus simples
    Merci beaucoup

  19. #39
    Membre actif
    Inscrit en
    Février 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 52
    Par défaut
    Citation Envoyé par LeNarvalo Voir le message
    Tu te rends bien compte que faire for loop in range(1) ne sert à rien ?
    Autant faire loop = 0 mais dans la suite du code ça ne sert pas à grand chose... Je te laisse faire le constat par toi même.


    Essaye peut-être de clarifier/simplifier/décomposer ton script pour y voir plus clair, mettre 4 boucles imbriquées c'est bien si on maitrise le truc.

    Tu peux par exemple faire une fonction pour créer un tableau de façon aléatoire, une fonction pour créer un nombre aléatoire de tableau à partir de la fonction précédente, une fonction pour gérer Pandas, une fonction pour extraire chaque tableau, une fonction pour faire tes comparaisons pour chaque tableau, une autre fonction pour afficher le résultat de la comparaison, etc.
    une fonction pour faire tes comparaisons pour chaque tableau, stp tu peux me donner une piste j'arrive toujours pas à comparer une liste des tableaux un par un merci d'avance

  20. #40
    Invité
    Invité(e)
    Par défaut
    A vrai dire je ne comprends pas ce que tu cherches à comparer...

    J'ai noté un truc étrange dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          val1 =pand.loc[li,'val1']
          val2 =pand.loc[li,'val2']
          val3 = pand.loc[li,'val3']
          val4 = bigTab.loc[ind, 'val4']
    val4 = bigTab.loc[ind, 'val4'] ou val4 = pand.loc[li, 'val4'] ?

    Tu ne compares pas val4 à valrb4 c'est normal ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    tableau_de_reference = [[0,1,2],\
                            [3,4,5],\
                            [6,7,8]]
     
    tableau_a_comparer = [[0,1,2],\
                          [3,4,55],\
                          [6,7,8]]
     
    for i_r, row in enumerate(tableau_a_comparer):
        row_ref = tableau_de_reference[i_r]
        for i_o, obj in enumerate(row):
            obj_ref = row_ref[i_o]
            if obj > obj_ref:
                text1 = f'{row} compare to {row_ref}'
                text2 = ' '*(str(row).index(str(obj)))+'↑'*len(str(obj))+' '*13+' '*(str(row_ref).index(str(obj_ref)))+'↑'*len(str(obj_ref)) #Pour le fun et imiter les nouvelles versions de Python =)
                print(text1)
                print(text2)
     
     
    [3, 4, 55] compare to [3, 4, 5]
           ↑↑                    ↑

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/05/2011, 00h47
  2. Valeurs aléatoires dans un tableau C++
    Par 0nn2belle dans le forum C++
    Réponses: 6
    Dernier message: 10/02/2010, 14h13
  3. Recupérer des valeurs calculées dans une boucle
    Par Medoou dans le forum MATLAB
    Réponses: 40
    Dernier message: 23/07/2009, 15h12
  4. Prendre en compte une valeur insérée dans une boucle for
    Par SOPSOU dans le forum Intelligence artificielle
    Réponses: 6
    Dernier message: 08/07/2009, 17h20
  5. [BO 5] Valeur aléatoire dans un rapport
    Par LP-mpascolo dans le forum Designer
    Réponses: 27
    Dernier message: 10/12/2007, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo