【问题标题】:sum over inputs of three arrays in python对python中三个数组的输入求和
【发布时间】:2021-11-28 15:34:03
【问题描述】:

我有 3 个名为 R、p 和 k 的数组,我还有一个表达式。 我想为 R 的第一个值以及 p 和 k 的整个值计算这个表达式。 然后对从这一步获得的所有结果求和,并将它们作为第一个元素放入一个新数组中。 然后计算 R 的第二个值以及 p 和 k 的每个值的上述表达式。然后,再次对第二步的所有结果求和,并将它们作为第二个元素放入一个新数组中,依此类推...... 我做了一些编码,但我不知道如何继续它。 如果您能帮助我,我将不胜感激。

import numpy as np
R = [1,4,6]
p = [6,4,1]
k = [8,5,2]
sigma = np.zeros(len(R))
for i in range(len(R)):
    for j in range(len(k)):
        sigma = (p[j]+k[j]*R[i])
        print(sigma)

如何对第一个(第二个等)R 产生的值求和并将它们附加到一个新数组中?

【问题讨论】:

  • 如果您添加预期结果,它可能会帮助人们了解您正在尝试做什么。

标签: python arrays loops sum


【解决方案1】:

您可以尝试使用列表推导。

基本上翻译成,对于R中的每一个i,计算p,k中每一对的sigma

R = [1,4,6]
p = [6,4,1]
k = [8,5,2]

[[a+b*i for a,b in zip(p,k)] for i in R]

输出

[[14, 9, 3], [38, 24, 9], [54, 34, 13]]

【讨论】:

    【解决方案2】:
    import numpy as np
    R = [1,4,6]
    p = [6,4,1]
    k = [8,5,2]
    ans = np.zeros(len(R))
    for i in range(len(R)):
        sigma = 0 #for each value in R  calculated value initialized to 0
        for j in range(len(k)):
            #loop through second array and compute the expression
            sigma += p[j]+k[j]*R[i]
        ans[i]=sigma #add value to answers list after second loop
    print(ans)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-07
      • 2013-12-05
      • 2016-05-19
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      相关资源
      最近更新 更多