0
votes

Comment imprimer la somme des colonnes et des rangées en python?

J'aimerais imprimer la somme de chaque ligne et une somme de chaque colonne d'un tableau de deux dimensions, comme celui-ci:

  • somme rangée1 = 123 (les chiffres ne sont pas réels, juste par exemple)
  • Somme Row2 = 123
  • somme rangée3 = 123

    et la même chose avec les colonnes. Je sais comment le faire en Java, mais je ne sais pas comment le faire en python. Ceci est mon code (code manquant pour les sommes de lignes et de colonnes, car je ne sais pas comment faire): xxx


4 commentaires

SUMS_IN_ROWS = Liste (mappe (somme, table1D))


On dirait que la dernière ligne est TypeError: type (s) d'opérande non pris en charge pour +: 'int' et 'list' parce que SumRows est un int et table1d [i ] est une liste. C'est à côté du point que, car @furas est le droit sums_in_rows = carte (somme, table1d) est la manière dont vous résumez les lignes et que vous pouvez résumer les colonnes de la même manière après simplement transposer les données.


Convertissez-le en une matrice numpie et vous aurez array.sum (axis = 0) , array.sum (axe = 1) et somme totale array.sum ( )


Oui, je sais que c'est une erreur, parce que je ne sais pas comment faire :) Est-ce la même chose pour les lignes et les colonnes, donc pour les colonnes que je le ferais comme ceci: Sums_in_columns = LMAP (somme, table2D)? Comment puis-je le convertir en tableau NUMPY?


3 Réponses :


0
votes
np.array(table1d).sum(axis=1)

0 commentaires

0
votes

Pour des lignes, vous n'avez besoin que de xxx

pour les colonnes dont il a besoin de plus xxx

Vous pouvez également le convertir en tableau NUMPY, puis vous avoir xxx


xxx

0 commentaires

0
votes

Vous pouvez utiliser des compréhensions de liste et la fonction SOM pour obtenir le résultat souhaité:

import random

rowCount = 3
colCount = 5

matrix = [ [random.randint(10,99) for _ in range(colCount)] for _ in range(rowCount) ]

for line in matrix:
    print(line)

for row in range(rowCount):
    print(f"sum row{row} = ",sum(matrix[row]))

for col in range(colCount):
    print(f"sum column{col} = ",sum(row[col] for row in matrix))


[90, 62, 86, 19, 13]
[33, 93, 38, 17, 29]
[11, 96, 91, 66, 81]

sum row0 =  270
sum row1 =  210
sum row2 =  345

sum column0 =  134
sum column1 =  251
sum column2 =  215
sum column3 =  102
sum column4 =  123


0 commentaires