如果我有一个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
那么,如何使行为在所有列表大小上保持一致呢?i、 e.我想要一个函数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:
类型的解决方案
提前谢谢你
注意嵌套的程度:
两个阵列的列表:
1个阵列的列表:
一个数组,而不是一个列表
数字列表:
sum
迭代参数,无论是列表还是数组。[93]之所以有效,是因为数组实现了自己的求和方法。它不适用于列表列表确保内容是2d数组,概括了以下情况:
或者使用轴0的numpy和:
IIUC,使用轴为0的numpy.sum:
np.sum([np.array([1,2,3]),axis=0) 输出:
数组([1,2,3]) 及
np.sum([np.array([3,1,2]),np.array([6,5,4]),axis=0) 输出:
数组([7,7,7])
Numpy数组可以在任意维度上求和。您需要首先将其转换为单个阵列:
np.array([...]).sum(axis=0)
正如评论中所暗示的那样,从一开始就将其作为numpy数组处理更有意义
相关问题 更多 >
编程相关推荐