将两个不同数组中的值相加以计算平均python

时间:2018-03-06 01:30:49

标签: python

我有两个数组需要通过将每个数组中的值加在一起组合成一个数组。

x = [2, 4, 6, 8, 10]

我想要的结果是:

x = [1, 2, 3, 4, 5] 

然后能够计算每个值的平均值以获得结果:

TypeError: 'list' object cannot be interpreted as an integer

当我运行它时,它会返回错误

{{1}}

2 个答案:

答案 0 :(得分:2)

sum获取一系列对象的总和。例如,sum(a)将产生值15。你给了它两个清单。

由于您要添加两个数组,因此需要将列表转换为numpy数组 first ; 然后你可以将它们添加为numpy vector addition。

>>> import numpy as np
>>> a = np.array([1, 2, 3, 4, 5])
>>> b = np.array([1, 2, 3, 4, 5])
>>> a+b
array([ 2,  4,  6,  8, 10])
>>> (a+b)/2
array([ 1.,  2.,  3.,  4.,  5.])

答案 1 :(得分:1)

使用一些好的列表理解。在这种情况下,zip功能也会对我们有所帮助。

result = [x+y for x, y in zip(a,b)]

Zip将x的每个元素连接到同一索引处的y元素,并在一个列表用完时停止。列表理解采用新创建的列表中的每个元素,并将彼此相邻的两个元素相加。

所以看起来这个扩展了:

for n,z in zip(x,y):
    x.append(n+z)

示例:

> a = b = [1,2,3,4,5]
> result = [x+y for x, y in zip(a,b)]
> result
[2, 4, 6, 8, 10]