数组列表中元素的总和

时间:2018-08-21 16:26:08

标签: python arrays list numpy

我有一个看起来像这样的数组列表(每个数组的尺寸和列表的长度不一定固定):

mylist = np.array([[1,2],[3,4],[5,6],[7,8],[9,10]]),
         np.array([[1,2],[1,2]]),
         np.array([[1,2,3,4,5],[3,4,5,6,7]]),
         np.array([1,2])

我想获取列表中所有元素的总和,并在末尾得到一个浮点数。

在这种情况下,结果将是:

sum = 1+2 + 3+4 + 5+6 + 7+8 +9+10 +
      1+2 + 1+2 + 
      1+2+3+4+5 + 3+4+5+6+7 +
      1+2

1 个答案:

答案 0 :(得分:2)

首先请注意,您输入的内容在语法上不正确。一旦正确定义了public ActionResult Receipt(int year, int Id, ReceiptViewModel model) { var root = Server.MapPath("~/App_Data/"); var pdfname = String.Format("{0}-{1}-{2}.pdf", Id, year, Guid.NewGuid().ToString()); var path = Path.Combine(root, pdfname); path = Path.GetFullPath(path); IUserMailer mailer = new UserMailer(); var a = new ViewAsPdf("Receipt", new { Id, year }) { FileName = pdfname, PageSize = Rotativa.Options.Size.A5, PageOrientation = Rotativa.Options.Orientation.Portrait, SaveOnServerPath = path }; var byteArray = a.BuildFile(ControllerContext); var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write); fileStream.Write(byteArray, 0, byteArray.Length); fileStream.Close(); // email the pdf as attachment mailer.BulkReceipt(path, pdfname, Id, year).SendAsync(); // Delete file System.IO.File.Delete(path); return View("ReceiptSuccess", a); } 个对象中的list个,就可以将np.ndarray与一个生成器表达式一起使用:

sum

此外,从不内置阴影,因此不要为变量L = [np.array([[1,2],[3,4],[5,6],[7,8],[9,10]]), np.array([[1,2],[1,2]]), np.array([[1,2,3,4,5],[3,4,5,6,7]]), np.array([1,2])] res = sum(i.sum() for i in L) # 104 list命名。


如果两个维度之一在所有数组中的大小都相同,则可以将它们合并为一个数组,然后使用矢量化方法:

sum