首页 > 解决方案 > 如果列表大小为 1,则对 NumPy 数组列表求和,而不对坐标求和

问题描述

如果我有一个 numpy 数组列表并想按坐标添加它们:np.sum()就可以了。

sum([np.array([1, 2, 3]), np.array([6, 5, 4])])
>>> array([7, 7, 7])

但是如果我的列表恰好只包含一个数组,就会发生一件新的(和不需要的)事情:

sum([np.array([1, 2, 3])])
>>> 6

那么如何让行为在所有列表大小上保持一致呢?即我想要一个f()这样的功能:

f([np.array([1, 2, 3]), np.array([6, 5, 4])])
>>> array([7, 7, 7])
f([np.array([1, 2, 3])])
>>> array([1, 2, 3])

我不包括if len(lst) > 1:类型解决方案。

先感谢您!

标签: pythonnumpysum

解决方案


Numpy 数组可以在任意维度上求和。您需要先将其转换为单个数组:

np.array([...]).sum(axis=0)

正如评论中所暗示的那样,从一开始就将其作为一个 numpy 数组处理更有意义。


推荐阅读