当前位置: 首页 > 面试题库 >

我如何在最简洁的python中求和多维数组?

秦弘亮
2023-03-14
问题内容

最接近的是这一列的求和。

因此,我将在问题中执行类似的操作:

假设我有一个Python 2D列表,如下所示:

my_list =  [ [1,2,3,4],
             [2,4,5,6] ]

我可以通过列表理解获得行总数:

row_totals = [ sum(x) for x in my_list ]

在一行中,我如何求和整个二维数组?

27

问题答案:

您可以轻松完成

sum(map(sum, my_list))

或者

sum(sum(x) for x in my_list))

如果您不希望尺寸超过2个维度,则将其命名为“一天”。请注意,由于使用,第一个解决方案很可能不是最快的解决方案(在执行时)map()。进行基准测试并根据需要进行比较。

最后,如果发现自己使用了多维数组,请考虑使用NumPy及其出色的数组友好功能。这是您的问题的简短摘录:

import numpy as np

my_list = np.array([[1,2,3,4], [2,4,5,6]])
np.sum(my_list)

这将适用于数组可能具有的任意数量的维度。



 类似资料:
  • 问题内容: 如何通过关联键添加所有列值?请注意,键集是动态的。 输入数组: 所需结果: 问题答案:

  • 问题内容: 我有一个要转换为Python的Java小问题。因此,我需要一个多维数组。在Java中,它看起来像: 其他值将在bei循环中创建并写入数组。 如何实例化数组? PS:不涉及矩阵乘法… 问题答案: 您可以使用嵌套列表创建它: 如果必须动态的话,它会更加复杂,为什么不自己编写一个小类呢? 可以这样使用: 我敢肯定,可以更有效地实施它。:) 如果您需要多维数组,则可以创建一个数组并计算偏移量,

  • 问题内容: 我经常对Python列表进行矢量加法。 示例:我有两个这样的列表: 我现在想将b添加到a以获得结果。 通常我最终会这样: 有没有什么有效的,标准的方法可以减少打字? 更新:可以假定列表的长度为3,并且包含浮点数。 问题答案: 我认为您找不到比问题中提出的3个总和更快的解决方案。numpy的优点对于较大的矢量以及在需要其他运算符时都是显而易见的。numpy对于矩阵特别有用,而python

  • 问题内容: 在JavaScript中实现单例模式的最简单/最干净的方法是什么? 问题答案: 我认为最简单的方法是声明一个简单的对象文字: 如果您希望单例实例上有私人成员,则可以执行以下操作: 这就是所谓的模块模式,它基本上可以让你来封装对象私有成员,通过采取利用的优势关闭。 更新: 我想补充一点,如果要防止修改单例对象,可以使用ES5 方法冻结它。 这将使对象不可变,从而防止对其结构和值进行任何修

  • 问题内容: 我的两难选择:我正在向函数传递一个字符串,然后在该字符串上执行许多正则表达式操作。逻辑是,如果第一个正则表达式中存在匹配项,则做一件事。如果不匹配,请检查第二个是否匹配,然后执行其他操作;如果不匹配,请执行其他操作,依此类推。我可以做这样的事情: 但是,这感觉不必要的冗长,通常情况下,这意味着我有更好的方法可以忽略或不知道。 是否有人建议采用更好的方法(从代码外观的角度,内存使用的角度

  • 现在我要为每个学生找到总分和最高分。(一名学生的最高分是指他/她在哪一个学期获得最高分,也是指该学生的总分=第一学期+第二学期)。但我不知道我会怎么写,如果有人能帮助我,我会很感激他。