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

p1tboqfb  于 2024-01-08  发布在  其他
关注(0)|答案(2)|浏览(230)

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

  1. import numpy as np
  2. a = np.array((np.arange(0,10),
  3. np.arange(10,20),
  4. np.arange(20,30),
  5. np.arange(30,40)))
  6. d = a.sum(axis=1)
  7. print(a.transpose())
  8. print(d)

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

lbsnaicq

lbsnaicq1#

  1. import numpy as np
  2. a = np.arange(40).reshape(4,10)
  3. for i, total in enumerate(a.sum(1)):
  4. print(f"Row {i+1} sum is {total}")

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

  1. import numpy as np
  2. a = np.arange(40).reshape(4,10)
  3. totals = a.sum(1)
  4. for i in range(totals.shape[0]):
  5. print(f"Row {i+1} sum is {totals[i]}")


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

展开查看全部
wqsoz72f

wqsoz72f2#

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

  1. import numpy as np
  2. a = np.array((np.arange(0,10),
  3. np.arange(10,20),
  4. np.arange(20,30),
  5. np.arange(30,40)))
  6. d = a.sum(axis=1)
  7. for e,i in enumerate(d):
  8. print('Row {} - sum: {}'.format(e+1,i))

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

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


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

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


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

展开查看全部

相关问题