如何在numpy中打印出数组每行的和

p1tboqfb  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(70)

我有一个numpy数组,我需要显示每行的总和。我尝试使用transpose(),但它不起作用。

import numpy as np
a = np.array((np.arange(0,10),
    np.arange(10,20),
    np.arange(20,30),
    np.arange(30,40)))
d = a.sum(axis=1)
print(a.transpose())
print(d)

字符串
我的输出是[ 45 145 245 345],[ 45 145 245 345],但我需要显示为行1和是45,行2和是145,行3和是245,行4和是345

lbsnaicq

lbsnaicq1#

import numpy as np
a = np.arange(40).reshape(4,10)

for i, total in enumerate(a.sum(1)):
    print(f"Row {i+1} sum is {total}")

字符串
编辑:在阅读了关于你对enumerate缺乏理解的文章后:

import numpy as np
a = np.arange(40).reshape(4,10)

totals = a.sum(1)
for i in range(totals.shape[0]):
    print(f"Row {i+1} sum is {totals[i]}")


enumerate只是一种获取索引的方便方法,如果你想使用for each循环的话

wqsoz72f

wqsoz72f2#

正如我理解你的问题,你已经正确地总结了每一行,你只需要帮助简洁地显示这些总和。如果是这种情况,这应该解决你的问题:

import numpy as np

a = np.array((np.arange(0,10),
    np.arange(10,20),
    np.arange(20,30),
    np.arange(30,40)))

d = a.sum(axis=1)

for e,i in enumerate(d):
    print('Row {} - sum: {}'.format(e+1,i))

字符串
它打印:
第1行-总和:45
第2行-总和:145
第3行-总和:245
第4行-总和:345
如果你不想使用enumerate,一个替代方法可以像这样运行循环:

for i,j in zip(d, range(len(d))):
    print('Row {} - sum: {}'.format(j+1,i))


在这段代码中,zip允许你一次遍历两个列表,其中j将遍历'd '的值0 -> length。如果你不确定是否使用zip,你可以这样做:

for i range(len(d)):
    print('Row {} - sum: {}'.format(i+1,d[i]))


让我知道,如果这是你之后,或者如果你想让我编辑这个代码片段,包括其他东西。

相关问题