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 :

calculer la somme des éléments d'un vecteur


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut calculer la somme des éléments d'un vecteur
    Bonjour,
    Je souhaite calculer la somme des éléments d'un vecteur.
    Quelle fonction dois je utiliser? Merci d'avance
    Voici mon vecteur
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Salut,

    Le contenu d'un fichier texte composé d'une colonne de nombres "flottants" ne dit pas ce que vous appelez "vecteur" qui n'est pas un type de base de Python.
    Ceci dit vous pouvez faire la somme d'une séquence de nombres via la fonction "built-in" sum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> a = (1, 2, 3)
    >>> sum(a)
    6
    >>> help (sum)
    Help on built-in function sum in module __builtin__:
     
    sum(...)
        sum(sequence[, start]) -> value
     
        Returns the sum of a sequence of numbers (NOT strings) plus the value
        of parameter 'start' (which defaults to 0).  When the sequence is
        empty, returns start.
    Cordialement,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut Helpppppppp !!
    Merci pour l'info, c'est juste que je suis débutant en python et mon maitre de stage appelait chaque colonne comme vecteur.

    J'ai essayé la fonction sum sur une de mes colonnes, j'ai tjs un message d'erreur :
    TypeError: 'float' object is not iterable

    Mes colonnes sont obtenues à partir d'un fichier texte, j'ai du les convertir en float pour pouvoir les classer ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for p in range(len(tableau)):	
    		X1=float(tableau[p][1])
    Je dois faire en urgence quelques calculs en utilisant des equations compliquées et j'ai besoin de calculer les sommes des valeurs de chaque colonnes.

    Merci d'avance pour votre aide

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Salut,
    c'est juste que je suis débutant en python et mon maitre de stage appelait chaque colonne comme vecteur.
    Il a le droit puisque ces choses représentent des objets "métiers".
    Coder c'est leur donner une représentation avec les objets du langage Python qui ont toujours le mauvais goût d'avoir leur nom a eux...
    Pire c'est a vous qu'il revient de mettre en forme ces choses métiers en objets du langage

    Mes colonnes sont obtenues à partir d'un fichier texte, j'ai du les convertir en float pour pouvoir les classer ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for p in range(len(tableau)):	
    		X1=float(tableau[p][1])
    Comment est construit "tableau" à partir du "texte" précédent?
    Comment arrivez vous à montrer une colonne et vous retrouver à manipuler un tableau à plusieurs dimensions (tableau[p][1])?
    Ou est notre séquence de nombres à laquelle appliquer "sum"?

    Vous voyez que la chose cachée derrière le mot "vecteur" à son importance...
    Et en plus vous vous appliquez à ne pas montrer comment il est construit.

    Pour faire simple, on peut mettre la colonne de texte dans une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    data = """59.1719
    61.9565
    64.741
    67.5256
    70.3101"""
    Pour convertir cela en une séquence de float, j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    values = map(float, data.splitlines())
    Si çà va trop vite vous pouvez écrire cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    values = []
    for s in data.splitlines():
         values.append(float(s))
    Puis on applique à la séquence de nombres ainsi obtenue la fonction "sum":
    Et çà doit afficher: 323.7051

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

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 035
    Par défaut
    Autre solution simple

    - readlines
    - map
    - sum

    readlines pour placer tous les nombres dans une liste

    map pour transformer chaque élément de la liste en float

    sum pour faire la somme de tous les éléments de la liste

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut
    Voici la forme d'une partie de tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [['1', '59.1719', '33.7628', '59.1717', '33.7621', '-6.38307e-06', '4.37423e-05', '-5.47665e-05', '-8.05611e-05', '1.94115e-05', '-1.03796', '3.25791e-05', '1', '0', '0', '0'], ['1', '61.9565', '33.7628', '61.9562', '33.7622', '-8.42891e-06', '-1.68337e-05', '-3.50265e-05', '-4.31808e-05', '-2.74669e-07', '1.1197', '-4.18484e-06', '1', '0', '0', '0'], ['1', '64.741', '33.7628', '64.7409', '33.7621', '6.78761e-05', '-6.77062e-05', '7.35626e-07', '-4.12659e-05', '0.000109878', '1.01554', '-5.91492e-06', '1', '0', '0', '0'], ['1', '67.5256', '33.7628', '67.5254', '33.7619', '-6.09481e-05', '-7.20047e-05', '-2.34684e-05', '-0.000116612', '3.21951e-05', '0.658118', '2.47959e-05', '1', '0', '0', '0'], ['1', '70.3101', '33.7628', '70.3099', '33.7621', '1.73855e-05', '5.38194e-05', '-2.49229e-05', '-6.15963e-05', '5.40589e-05', '-0.972511', '0.000141128', '1', '0', '0', '0'], ['1', '59.1719', '44.901', '59.1715', '44.9004', '-2.80354e-06', '-2.42085e-05', '6.61049e-05', '-1.04581e-05', '7.37594e-05', '0.306272', '2.7994e-05', '1', '0', '0', '0'], ['1', '61.9565', '44.901', '61.956', '44.9002', '-1.50369e-05', '-8.95777e-05', '-4.15848e-06', '-9.93404e-05', '8.0145e-05', '0.755015', '-6.05034e-05', '1', '0', '0', '0'], ['1', '64.741', '44.901', '64.7404', '44.9', '-6.76108e-05', '-2.26082e-05', '-6.12795e-05', '-8.72739e-05', '-4.16164e-05', '0.715832', '-7.13593e-06', '1', '0', '0', '0'], ['1', '67.5256', '44.901', '67.5249', '44.8998', '-2.47246e-05', '-4.98867e-05', '-3.79008e-05', '-8.16325e-05', '1.90071e-05', '0.851004', '-4.46166e-05', '1', '0', '0', '0'], ['1', '70.3101', '44.901', '70.3093', '44.8999', '-8.66542e-05', '6.15583e-05', '-5.82928e-05', '-0.000135644', '-9.30303e-06', '-0.672099', '9.33049e-05', '1', '0', '0', '0'], ['1', '59.1719', '56.0393', '59.1713', '56.0383', '0.000111875', '0.000188718', '-0.000135142', '-0.000237175', '0.000213908', '-1.07498', '0.000170884', '1', '0', '0', '0'], ['1', '61.9565', '56.0393', '61.956', '56.0383', '-3.60682e-06', '-0.000161949', '-2.59444e-05', '-0.00017711', '0.000147558', '0.819638', '-0.000188201', '1', '0', '0', '0'],

    Puis après j'extrais colonne par colonne,
    par exemple pour la deuxieme colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for p in range(len(tableau)):	
    		X1=float(tableau[p][1])
    et j'obtiens
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    67.5256
    70.3101
    59.1719
    61.9565
    64.741
    J'ai essayé la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    values = []
    		for s in X1.splitlines():
       			values.append(float(s))
    		print values
    Mais j'ai un message d'erreur : AttributeError: 'float' object has no attribute 'splitlines'

    J'ai essayé readlines+map+sum mais j'ai ce message d'erreur :
    AttributeError: 'float' object has no attribute 'readlines'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    b4=X1.readlines()
    	b5=map(float, X1.splitlines())
    	b6=sum(b5)
    	print b6

  7. #7
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 035
    Par défaut
    Imaginons une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> liste = ['1', '59.1719', '33.7628', '59.1717', '33.7621', '-6.38307e-06', '4.37423e-05', '-5.47665e-05', '-8.05611e-05', '1.94115e-05', '-1.03796', '3.25791e-05', '1', '0', '0', '0']
    On transforme les éléments de cette liste en type float

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> liste = map(float, liste)
    Puis on fait la somme de cette liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> sum(liste)
    186.83049402223003
    Ton cas sera facile à adapter, tu as des listes de liste, tu peux créer ta fonction somme(liste)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def somme(liste):
        liste = map(float, liste)
        return sum(liste)
     
    ma_liste = [['1', '59.1719', '33.7628', '59.1717', '33.7621', '-6.38307e-06', '4.37423e-05', '-5.47665e-05', '-8.05611e-05', '1.94115e-05', '-1.03796', '3.25791e-05', '1', '0', '0', '0'], ['1', '61.9565', '33.7628', '61.9562', '33.7622', '-8.42891e-06', '-1.68337e-05', '-3.50265e-05', '-4.31808e-05', '-2.74669e-07', '1.1197', '-4.18484e-06', '1', '0', '0', '0'], ['1', '64.741', '33.7628', '64.7409', '33.7621', '6.78761e-05', '-6.77062e-05', '7.35626e-07', '-4.12659e-05', '0.000109878', '1.01554', '-5.91492e-06', '1', '0', '0', '0'], ['1', '67.5256', '33.7628', '67.5254', '33.7619', '-6.09481e-05', '-7.20047e-05', '-2.34684e-05', '-0.000116612', '3.21951e-05', '0.658118', '2.47959e-05', '1', '0', '0', '0'], ['1', '70.3101', '33.7628', '70.3099', '33.7621', '1.73855e-05', '5.38194e-05', '-2.49229e-05', '-6.15963e-05', '5.40589e-05', '-0.972511', '0.000141128', '1', '0', '0', '0'], ['1', '59.1719', '44.901', '59.1715', '44.9004', '-2.80354e-06', '-2.42085e-05', '6.61049e-05', '-1.04581e-05', '7.37594e-05', '0.306272', '2.7994e-05', '1', '0', '0', '0'], ['1', '61.9565', '44.901', '61.956', '44.9002', '-1.50369e-05', '-8.95777e-05', '-4.15848e-06', '-9.93404e-05', '8.0145e-05', '0.755015', '-6.05034e-05', '1', '0', '0', '0'], ['1', '64.741', '44.901', '64.7404', '44.9', '-6.76108e-05', '-2.26082e-05', '-6.12795e-05', '-8.72739e-05', '-4.16164e-05', '0.715832', '-7.13593e-06', '1', '0', '0', '0'], ['1', '67.5256', '44.901', '67.5249', '44.8998', '-2.47246e-05', '-4.98867e-05', '-3.79008e-05', '-8.16325e-05', '1.90071e-05', '0.851004', '-4.46166e-05', '1', '0', '0', '0'], ['1', '70.3101', '44.901', '70.3093', '44.8999', '-8.66542e-05', '6.15583e-05', '-5.82928e-05', '-0.000135644', '-9.30303e-06', '-0.672099', '9.33049e-05', '1', '0', '0', '0'], ['1', '59.1719', '56.0393', '59.1713', '56.0383', '0.000111875', '0.000188718', '-0.000135142', '-0.000237175', '0.000213908', '-1.07498', '0.000170884', '1', '0', '0', '0'], ['1', '61.9565', '56.0393', '61.956', '56.0383', '-3.60682e-06', '-0.000161949', '-2.59444e-05', '-0.00017711', '0.000147558', '0.819638', '-0.000188201', '1', '0', '0', '0']
     
    print([somme(liste) for liste in ma_liste])
    Pas testé, la flemme

    Pour lire ton fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with open('tonfichier.txt', 'r') as f:
        ma_liste = [fl.strip('\n') for fl in f.readlines()]
    tu n'as pas dû supprimer les '\n'.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Par défaut
    Merci pour votre réponse,
    J'ai essayé ta solution,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for p in range(len(tableau)):	
    		X1=float(tableau[p][1])
    		Y1=float(tableau[p][2])
    		X2=float(tableau[p][3])
    		Y2=float(tableau[p][4])
     
    		def somme(liste):
        			liste = map(float, liste)
        			return sum(liste)
     
    		B=([somme(X1) for X1 in tableau])
     
    		print B
    Par contre j'obtiens plusieurs valeurs et le logiciel s'arrête et donne plus de réponse, en pièce jointe un impr écran...

    Effectivement je pense que ce que je cherche à faire est très facile ... c juste que j'ai pas les outils vu que je suis débutant

    je pourrai reposer le probleme autrement, je cherche à calculer la somme des valeurs de chaque colonne du tableau. Par exemple pour la colonne de X1 j'aimerai obtenir la somme
    : X1somme=tableau[0][1]+tableau[1][1]+.....+tableau[p][1] for p in range(len(tableau))
    Images attachées Images attachées  

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Salut,
    Maintenant qu'il y a un "contexte", lorsque vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for p in range(len(tableau)):	
    		X1=float(tableau[p][1])
    X1 contiendra la dernière valeur du tableau.

    Si vous voulez qu'X1 soit la somme de...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    X1 = 0.0
    for p in range(len(tableau)):	
    		X1 += float(tableau[p][1])
    print (X1)
    Par contre, lorsque vous dites:
    Puis après j'extrais colonne par colonne,
    par exemple pour la deuxieme colonne
    il serait utile de construire une fonction extract_column qui le fasse (si ce que vous voulez ne correspond à rien dans le code, çà ne va pas le faire!):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def extract_column(table, ix):
         return [ float (table[p][ix] for p in range(len(table)) ]
    et d'appliquer sum au retour de la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(extract_column(tableau, 1))
    Cordialement,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 035
    Par défaut
    Effectivement je pense que ce que je cherche à faire est très facile ... c juste que j'ai pas les outils vu que je suis débutant
    Oui donc faudra lire de la doc

    Voilà le code complet si on utilise ma méthode

    Pour un seul vecteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def somme(liste):
        liste = map(float, liste)
        return sum(liste)
     
    with open('tonfichier.txt', 'r') as f:
        ma_liste = [fl.strip('\n') for fl in f.readlines()]
     
    print(somme(ma_liste))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 07/03/2010, 21h09
  2. Somme des éléments d'un vecteur
    Par acacia dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 16/02/2009, 13h00
  3. calcul du somme des valeurs ds un fichier
    Par meera dans le forum Visual C++
    Réponses: 5
    Dernier message: 19/11/2006, 12h22
  4. Réponses: 3
    Dernier message: 24/08/2006, 11h56
  5. [newbie]comment calculer la somme des nb pages sum()?
    Par megapacman dans le forum Débuter
    Réponses: 3
    Dernier message: 13/06/2006, 11h03

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