我希望使用加法将多个数组广播到单个数组中,我知道可以简单地做到这一点,以便:
a = numpy.array([1,2,3])
b = numpy.array9[4,5,6])
sum = a + b
print(sum)
[5,7,9]
但是,我不能像在这个简单的示例中那样对其进行硬编码,因为我将使用不同数量的输入多次运行脚本,因此每次都将具有不同数量的数组。有时,我可能有a和b,但有时我可能有a,c和d,但没有b等。
因此,使用循环将我确实拥有的数组追加到列表中,从而得到如下结果:
newlist = [array([1,2,3,...5,4,3]),
array([5,7,2,...4,6,7]),
array([3,6,2,...4,5,9])]
从“ newlist”中的数组中获取单个数组的最pythonic方法是在其中添加数组,例如(从newlist):
sum = [8,15,7,...14,15,19]
阵列都是相同的形状。
坚持使用Numpy数组并使用其sum()
方法:
>>> arr = np.array([[1,2,3,5,4,3],
[5,7,2,4,6,7],
[3,6,2,4,5,9]])
>>> arr.sum(axis=0)
array([ 9, 15, 7, 13, 15, 19])
当然,您也可以使用Python列表来做到这一点,但是它会很慢:
>>> lst = [[1,2,3,5,4,3],
[5,7,2,4,6,7],
[3,6,2,4,5,9]]
>>> map(sum, zip(*lst))
[9, 15, 7, 13, 15, 19]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句