我有一个数字列表列表,我想总结所有数字(无论列表列表)。这应该是np.sum的小菜一碟 事实上,如果我们有
a=[[1,2],[3,4]]
np.sum(a)
返回10
顺便说一句,如果我们有
a=[[1,2],[3,4,5]]
np.sum(a)
返回
[1,2,3,4,5]
对我来说似乎很奇怪......
答案 0 :(得分:4)
所以我觉得这里的答案很简单。
np.sum
将评估这两个列表,并意识到它无法将其值存储在普通数组中。因此它将创建一个对象数组:
In [99]: x = [[1,2],[3,4,5]]
In [100]: np.array(x)
Out[100]: array([[1, 2], [3, 4, 5]], dtype=object)
在对数组元素求和时,它将使用对象__add__
运算符。
添加两个对象是:
In [103]: [1,2] + [3,4,5]
Out[103]: [1, 2, 3, 4, 5]
因此:
In [104]: np.sum([[1,2],[3,4,5]])
Out[104]: [1, 2, 3, 4, 5]