【发布时间】:2020-05-28 01:13:35
【问题描述】:
我想打印一个二维数组的每一行的总和和每一列的总和,像这样:
- 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]
【问题讨论】:
-
sums_in_rows = list(map(sum, table1d)) -
看起来最后一行是
TypeError: unsupported operand type(s) for +: 'int' and 'list',因为sumRows是一个int 而table1d[i]是一个列表。这不是重点,因为@furas 是对的,sums_in_rows = map(sum, table1d)是您对行求和的方式,并且您可以在简单地转置数据后以相同的方式对列求和。 -
将其转换为numpy数组,您将拥有
array.sum(axis=0)、array.sum(axis=1)和总和array.sum() -
是的,我知道这是一个错误,因为我不知道该怎么做 :) 行和列是否相同,所以对于列我会这样做: sums_in_columns = lmap(sum , 表 2d)?如何将其转换为 numpy 数组?