如何在python中打印列和行的总和?

2024-10-03 00:18:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想打印二维数组中每行和每列的和,如下所示:

  • sum row1=123(例如,数字不是实和)
  • 第2行总和=123
  • 第3行总和=123

列也是如此。我知道如何用java实现,但不知道如何用python实现。 这是我的代码(缺少行和列之和的代码,因为我不知道怎么做):

from random import randint

dim1 = input("Insert first dimension: ")
dim1 = int(dim1)

dim2 = input("Insert second dimension: ")
dim2 = int(dim2)

table1d = []

for i in range(dim1):
    table2d = []
    for j in range(dim2):
        table2d.append(randint(1, 170))
    table1d.append(table2d)
print(table1d)

totalSum = sum(map(sum, table1d))
print(totalSum)

sumRows = 0
for i in range(0, len(table1d), 1):
    sumRows += table1d[i]

Tags: 代码inforinputrangeintinsertsum
3条回答

您可以使用列表理解和sum函数来获得所需的结果:

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
import numpy as np

栏目:

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

行:

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

对于仅需要的行

sums_in_rows = list(map(sum, table1d))

print(sums_in_rows)

对于专栏,它需要更多

sums_in_columns = [0]*len(table1d[0])  # create list for all results

for row in table1d:
    for c, value in enumerate(row):
        sums_in_columns[c] += value

print(sums_in_columns)

您还可以将其转换为numpy数组,然后

import numpy as np

arr = np.array(table1d)

print('rows:',  arr.sum(axis=1))
print('cols:',  arr.sum(axis=0))
print('total:', arr.sum())

from random import randint

dim1 = input("Insert first dimension: ")
dim1 = int(dim1)

dim2 = input("Insert second dimension: ")
dim2 = int(dim2)

table1d = []
#x = 0
for i in range(dim1):
    table2d = []
    for j in range(dim2):
        table2d.append(randint(1, 170))
        #table2d.append(x)
        #x += 1
    table1d.append(table2d)
print(table1d)

sums_in_rows = list(map(sum, table1d))
print(sums_in_rows)

sums_in_columns = [0]*len(table1d[0])
for row in table1d:
    for c, value in enumerate(row):
        sums_in_columns[c] += value
print(sums_in_columns)

import numpy as np

arr = np.array(table1d)
print(arr.sum(axis=1))
print(arr.sum(axis=0))
print(arr.sum())

相关问题 更多 >