我有两个数组需要通过将每个数组中的值加在一起组合成一个数组。
x = [2, 4, 6, 8, 10]
我想要的结果是:
x = [1, 2, 3, 4, 5]
然后能够计算每个值的平均值以获得结果:
TypeError: 'list' object cannot be interpreted as an integer
当我运行它时,它会返回错误
{{1}}
答案 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]