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 :

probleme trop bizarre avec les arrays de numpy


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut probleme trop bizarre avec les arrays de numpy
    Bonjour tous,
    j'ai un problème que je trouve très bizarre, j'espère que vous pourrez m'expliquer qu'es ce qui ne va pas dans mon code car là je ne comprends plus du tout

    Ci dessous vous allez voir dans ma fonction que j'ai un array qui s'appelle "Loadings", il est initialisé au début de la simulation et ensuite je n'y touche plus (je m'en sers juste comme entrée pour faire des petits calculs)

    A mon grand étonnement lorsque je vais la vérification de son contenu (où je met le commentaire #verif1 en réalité il y a une fonction qui vérifie le contenu de Loading) je me rend compte qu 'il est modifié dans cette fonction

    Et le truc que comprends encore moins c'est que si j'efface la ligne AllResultsHere[f][tp1][:]=np.copy(CurrentResultTp1) alors la matrice "Loadings" reste intacte comme je le souhaite

    J'ai entendu dire qu'avec numpy on ne peux pas faire A=B (je ne sais pas pourquoi ) et qu'il faut faire A=np.copy(B) et c'est bien ce que j'ai fais donc je suis vraiment étonné d'avoir des soucis....

    merci pour l'aide que vous pourrez me donner

    bonne soirée

    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
    54
    55
    56
    57
    58
    59
    60
    61
        def allsimulations(self,Param,systemO,inputO,plotO,finalPlot):
            Loadings=np.asarray(inputO.allExpLoadMatrix)
            Results=np.asarray(inputO.allExpRsltMatrix)
            LoadingsOpt=np.asarray(inputO.allOptloadMatrix)
            ResultsOpt=np.asarray(inputO.allOptResultMatrix)
            AllResultsHere=np.asarray(inputO.allExpLoadMatrix)#np.copy(Loadings)
            Times=np.asarray(inputO.allTimeVector)
            ResultsIni=np.asarray(inputO.allInitialResults)
            ### 
            ### 
            #verif1
            ### 
            ### 
            tempCol=[]
            for i in range(0,len(inputO.iniAuxVariables),1):
                tempCol.append(inputO.iniAuxVariables[i])
            ListOfAux=[]
            for i in range(0,len(Loadings),1):
                tempLine=[]
                for j in range(0,len(Loadings[i]),1):
                    tempLine.append(tempCol)
                ListOfAux.append(tempLine)
            AuxVar=np.asarray(ListOfAux)
            ### 
            ### 
            #verif2
            ### 
            ### 
            for f in range(0,len(Loadings),1):
                for tp1 in range(0,len(Times[f]),1):
                    if tp1==0:
                        CurrentResultTp1=np.copy(ResultsIni[f][0][:])
                        CurrentAuxVarTp1=np.copy(AuxVar[f][0][:])
                    else:
                        timeT=Times[f][tp1-1]
                        timeTp1=Times[f][tp1]
                        dTime=timeTp1-Times[f][tp1-1]
                        LoadT=np.copy(Loadings[f][tp1-1][:])
                        LoadTp1=np.copy(Loadings[f][tp1][:])
                        DLoad=np.copy(LoadTp1-Loadings[f][tp1-1][:])
                        DLoadDt=DLoad/dTime
                        ResultT=np.copy(CurrentResultTp1)
                        ResultTp1=np.copy(CurrentResultTp1)
                        AuxVarT=np.copy(CurrentAuxVarTp1)
                        AuxVarTp1=np.copy(CurrentAuxVarTp1)
                        sizeR=len(CurrentResultTp1)
                        sizeA=len(CurrentAuxVarTp1)
                        CurrentResultTp1=runC.simulation(self,Param,sizeR,sizeA,timeT,timeTp1,dTime,LoadT,LoadTp1,DLoad,DLoadDt,ResultT,ResultTp1,AuxVarT,AuxVarTp1)
                    ### 
                    ### 
                    #verif3
                    ### 
                    ### 
                    AllResultsHere[f][tp1][:]=np.copy(CurrentResultTp1)
                    ### 
                    ### 
                    #verif4
                    ### 
                    ### 
            ##############
            return AllResultsHere

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Pourquoi écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Loadings=np.asarray(inputO.allExpLoadMatrix)
    alors que vous dites:
    J'ai entendu dire qu'avec numpy on ne peux pas faire A=B (je ne sais pas pourquoi ) et qu'il faut faire A=np.copy(B) et c'est bien ce que j'ai fais donc je suis vraiment étonné d'avoir des soucis....
    La documentation de numpy.asarray donne des exemples qui devraient vous alerter.

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

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup de ta réponse mais désolé je n'ai pas compris.

    J'ai une liste qui se trouve dans une classe input et je veux copier le contenu dans une nouvelle variable "Loading" en faisant une conversion de "list" (biblio de base) vers "array" (numpy)

    --> pour ceci np.asarray(a) est donc pas nécessaire ?
    --> il faut donc faire np.copy(np.asarray(a)) ?

    mais je ne comprends pas trop pourquoi on est obligé de faire ceci ?

    c'est surement lié à cette phrase " If a is a subclass of ndarray, a base class ndarray is returned." mais je ne l'a comprends pas trop... pourrais tu l'éclaircir stp pour un débutant comme moi ?

    au fait c'est quoi un "ndarray" ce n'est pas comme un "array" ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Pour expliquer de façon simplifiée (d'après ce que j'ai compris), A= B font que A et B sont à la même adresse dans l'ordinateur. Modifier l'un affecte l'autre.
    Pour avoir 2 adressages différents, il faut faire une copie.
    Pas d'aide par mp.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    c'est surement lié à cette phrase "f a is a subclass of ndarray, a base class ndarray is returned." mais je ne l'a comprends pas trop...
    pourrais tu l'éclaircir stp pour un débutant comme moi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class A: pass
    class B(A): pass
    B est une sous classe de A.
    La phrase dit que si on passe un B en argument, il retournera un A.
    C'est de la gymnastique POO de base.

    Mais le plus important est dans la phrase précédente: No copy is performed if the input is already an ndarray.
    De plus, regardez les exemples, ils sont assez "parlants".

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

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci pour votre aide

    j'ai donc remplacé toutes les commandes :
    par des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=np.copy(np.asarray(B))
    et le problème persiste....

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    C'est que cela ne corrige qu'une partie du problème ou que la cause du problème est autre.
    Sans fournir un exemple de code qui permette de reproduire votre problème, pas facile de savoir.

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

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci mais à mon avis le problème vient bien de ce bout de code car :

    - la variable Loading n'est défini et utilisée que dans cette fonction nulle part ailleur donc à priori il n'y a que les lignes que l'on voit ci dessus qui peuvent avoir un impact sur Loading ? comment une fonction n'ayant rien avoir avec celle là pourrait modifier le contenu d'une variable locale de cette fonction ?

    - si je met cette ligne en commentaire "AllResultsHere[f][tp1][:]=np.copy(CurrentResultTp1)" mon problème est résolu

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    merci mais à mon avis le problème vient bien de ce bout de code car :

    - la variable Loading n'est défini et utilisée que dans cette fonction nulle part ailleur donc à priori il n'y a que les lignes que l'on voit ci dessus qui peuvent avoir un impact sur Loading ? comment une fonction n'ayant rien avoir avec celle là pourrait modifier le contenu d'une variable locale de cette fonction ?
    Lorsque les variables locales sont des objets mutables (=modifiables), tous les "effets de bords"(*) sont possibles et les débutants sont assez créatifs.
    (*) parler de déconvenue serait plus "juste" car cela secoue ce qu'on imaginait avoir compris.

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

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    d'accord, merci pour les infos.

    Pourrais tu me donner des exemples de choses que je dois vérifier stp car là je suis totalement bloqué je ne sais même pas quoi vérifier en plus

    Ce que j'ai fais :
    - vérifié que je ne modifier nulle par ailleurs cette variable Loading
    - vérifié que j'utilise toujours "np.copy"

    plus d'infos sur cette variable "Loading" :
    - comme tu as vu précédemment cette variable est initialisée comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loadings=np.copy(np.asarray(inputO.allExpLoadMatrix))
    - "allExpLoadMatrix" est une liste 3D: elle contient pour N fichiers (ici 2) une matrice de données que j'obtiens avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentExp=np.loadtxt(self.ExpFiles[n])
    (devrais je faire np.copy(np.loadtxt()) ? ça parait bizarre) et que je remplis avec un truc du style dans des boucles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TempExpL.append(currentExp[k,idxL])
    (devrais je faire append(np.copy(a[i,j])) aussi ? ça parait vraiment bizarre)

    et je viens de remarquer un truc de ouf:
    si le contenu des deux fichiers est le même alors je n'ai pas le bug, si le contenu est différent j'ai le bug

    ps: le seul truc que je vois c'est un effet pourri de la fonction (np.loadtxt) qui me donne des fichiers de données avec des connexions étranges....

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    j'en viens à touter de tout:
    si je vais A=B avec des list en python ça ne pose pas problèmes ?

    par exemple ce bout de code peut il générer un quelconque problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    a=[]
    a.append(0)
    a.append(1)
    b=a
    mais dans des cas très particulier j''espère que non ?

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    Pourrais tu me donner des exemples de choses que je dois vérifier stp car là je suis totalement bloqué je ne sais même pas quoi vérifier en plus

    Ce que j'ai fais :
    - vérifié que je ne modifier nulle par ailleurs cette variable Loadings
    Bah... vous ne montrez même pas ce qui vous fait dire que le contenu de ce tableau a été modifié.

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

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup de prendre le temps de m'aider.

    Citation Envoyé par wiztricks Voir le message
    Sans fournir un exemple de code qui permette de reproduire votre problème, pas facile de savoir.
    Suite à cette remarque j'ai réduis mon programme afin d'avoir le cas le plus simple possible qui puisse te permettre de reproduire ce que j'observe.

    En pièce jointe de ce message j'ai mis mes trois fichiers pythons, dans le prochain message je mettrais les fichiers d'entrées.

    Si tu lances ce bout de code tu vas d'apercevoir que ma matrice "Loading" est plein de 0 alors que je ne l'a rempli pas de 0....
    par contre si je commente la ligne dont je t'ai parlé tout à l'heure (dans le fichier runClass.py) alors ma matrice "Loading" garde bien un contenu correct...

    si tu peux jeter un coup d'oeil à mon code et me dire d'où est le problème ça serait super, j'ai essayé de nombres choses et là je ne comprends plus rien

    merci beaucoup

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    et voici les fichiers d'entrée où est lu le contenu de la matrice "Loading"

    merci

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    En gros votre code part d'une liste de listes (+/- inputO.allExpLoadMatrix)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> A = [ [1,2,3], [4,5,6]]
    Puis a partir de là, vous fabriquez deux objets B (Loadings) et C(AllResultsHere).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> B = list(A)
    >>> B
    [[1, 2, 3], [4, 5, 6]]
    >>> C = list(A)
    Ce sont des listes différentes les mêmes d'objets de type liste.
    Si vous modifiez le contenu d'un de ces objets en y accédant via C, accédé via B, il y aura la même modification (ce sont les mêmes objets):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> C[0][0] = 'xx'
    >>> B
    [['xx', 2, 3], [4, 5, 6]]
    Pour éviter cela, il faut copier les objets imbriqués:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> from copy import deepcopy
    >>> A = [ [1,2,3], [4,5,6]]
    >>> B = deepcopy(A)
    >>> B
    [[1, 2, 3], [4, 5, 6]]
    >>> C = deepcopy(A)
    >>> C[0] = 'xxx'
    >>> B
    [[1, 2, 3], [4, 5, 6]]
    >>> C
    ['xxx', [4, 5, 6]]
    >>>
    Que dire? Comme vous avez remplacé les arrays numpy par des listes Python pas facile d'affirmer qu'il s'agit des mêmes problèmes: une liste d'objets n'est pas une suite de cases mémoire (et deepcopy n'est pas np.copy).
    De toutes façons, si vous voulez programmer des choses complexes, il faut vous donner le temps de les maîtriser, comprendre comment ils fonctionnent avant de vouloir les utiliser.

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

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci énormément pour ta solution et pour le temps que tu as pris à regarder mon code !!!

    Voici quelque explications :
    - j'ai remplacé les array numpy car je trouve que c'est une grosse source d'erreur. J'avais remplacé tout mes = par des np.copy() et le problème persistait. ça me paraît impossible de faire du débuggage avec ce genre d'outil donc j'ai laissé tombé et je suis resté sur les listes.
    - merci pour ta correction, je vais tester ça au plus vite. Par contre ta solution ma étonnée car j'étais persuadé qu'en python il fallait faire ceci pour copier une list dans une autre et visiblement ce n'est pas la bonne solution. Je vais regarder ce que c'est cette histoire de deep.copy que je n'avais jamais rencontré auparavant.

    Quelque questions :
    - du coup quand es ce que l'on utilise un code du type puisque cette ligne de code ne semble pas convenir pour copier des listes ?
    - et qu'en es ce que l'on a intérêt à faire ça me parait une commande totalement inutile en python (qui devrait être interdite même) car si on modifie B ça modifie A alors autant ne garder qu'une variable pour éviter les erreurs ?

  17. #17
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    Quelque questions :
    - du coup quand es ce que l'on utilise un code du type puisque cette ligne de code ne semble pas convenir pour copier des listes ?
    Une liste d'objet mutables ne se traite pas de la même façon qu'une liste d'objets immutables.

    Citation Envoyé par membreComplexe12 Voir le message
    - et qu'en es ce que l'on a intérêt à faire ça me parait une commande totalement inutile en python (qui devrait être interdite même) car si on modifie B ça modifie A alors autant ne garder qu'une variable pour éviter les erreurs ?
    Cela n'est vrai que si l'objet est "mutable".

    Une liste est un objet de base Python.

    Ses propriétés sont décrites dans la documentations et de nombreuses utilisations sont montrées et expliquées dans les tutos.
    Mais ce sont de vraies abstractions.
    Si vous ne savez pas déjà ce qu'est une liste, un mutable, ...
    ces concepts vous passent par dessus la tête jusqu'à ce que vous expérimentiez et réalisiez ce que ces mots veulent dire.
    Riche de cette expérience sur les listes, essayez de relire la documentation.
    Vous comprendrez différemment le sens des mots.

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

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci énormément pour ton aide, je vais relire tout ceci car je pense que maintenant je vais effectivmeent comprendre tout autrement ces histoires de list ;-)
    à bientôt et encore un grand merci

  19. #19
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    il y a un truc qui me perturbe quand même dans cette histoire, tu dis que chez moi ce n'est pas possible de faire simplement b=list(a) pour la copie car ma liste "a" contient des objets et non directement des floattant ?

    mais en fait je ne suis pas certain de comprendre ce constat:
    - en fait dans ma classe de départ "input" j'ai une liste de flottant "a" et elle est contenu dans un objet "input0"
    - par contre lorsque je fais Loading=input0.a pourquoi ma liste de flottant se serait elle modifiée en devant une liste d'objets ?

    je ne comprends pas ce qui te permet de dire que Loading est une liste d'objets, je ne vois pas ce que j'ai fais qui est pu faire ceci. Pour moi tout le long de mon programme je croyais manipuler une liste de float classique ?

  20. #20
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par membreComplexe12 Voir le message
    je ne comprends pas ce qui te permet de dire que Loading est une liste d'objets, je ne vois pas ce que j'ai fais qui est pu faire ceci. Pour moi tout le long de mon programme je croyais manipuler une liste de float classique ?
    Si vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ###################################
                    for r in range(0,len(AllResultsHere[f][tp1]),1):
                        AllResultsHere[f][tp1][r]=0
    ###################################
    C'est que vous avez une liste de liste de liste de...

    Si vous manipulez "une liste de float classique", pourquoi avoir besoin de 3 niveaux d'indices? Un seul suffirait.
    Ce que vous racontez n'est pas cohérent avec le code que vous avez écrit.

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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probleme de auto_ptr avec les map
    Par Luther dans le forum C++
    Réponses: 8
    Dernier message: 08/04/2005, 10h49
  2. problème avec les array en pl/pgsql
    Par nico31120 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2005, 16h04
  3. Problème de taille avec les tables
    Par Angelico dans le forum Paradox
    Réponses: 2
    Dernier message: 27/12/2004, 18h38
  4. [Layer] Probleme de superposition avec les JMenuItem
    Par azdruyel dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 21/07/2004, 11h24
  5. problemes de performances avec les requetes select
    Par berry dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/07/2003, 13h39

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