gpt4 book ai didi

python - 如何将列表中的每个元素与嵌套列表相乘并获得总和?

转载 作者:行者123 更新时间:2023-12-02 19:26:09 27 4
gpt4 key购买 nike

我有一个这样的项目:

data = [[0, 1], [1, 1], [1, 0], [0, 1]]
res = [4, 2]

目标是将 resdata 中的每个元素相乘并得到总和。例如:

sum_prod = [[4*(0) + 2*(1)], [4*(1) + 2*(1)], [4*(1) + 2*(0)], [4*(0) + 2*(1)]]
sum_prod = [2, 6, 4, 2] # expected output

我的代码如下所示:

def fitness_score(g, u):
a = g
b = u
arr = a @ ab
fitness_value = arr.T.tolist()
return fitness_value

这里是如何调用函数fitness_score

fitness_score(数据,res)

如果要调用的数据是 numpy 数组,我的这段代码就可以工作

问题是,我的代码中有些部分不接受 numpy 数组。

有没有办法改变我的代码,它可以很容易地采用列表而不是numpy数组?这样我就可以在我的代码中使用它了?

如有任何帮助,我们将不胜感激!谢谢!

最佳答案

您可以使用np.multiply ,它接受 array_like作为输入(因此也列出),然后沿第二个轴输入 sum:

data = [[0, 1], [1, 1], [1, 0], [0, 1]]
res = [4, 2]

np.multiply(data, res).sum(1).tolist()
# [2, 6, 4, 2]

或者,对于更一般的场景,您有 np.asarray ,如果输入还不是一个数组,它只会创建一个数组,否则它会返回输入数组的 View :

def fitness_score(g, u):
a = np.asarray(g)
b = np.asarray(u)
return (a@b).tolist()

fitness_score(data, res)
# [2, 6, 4, 2]

关于python - 如何将列表中的每个元素与嵌套列表相乘并获得总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62375303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com