[英]How is Numpy sum adding up elements of a 2d array?
假设我有一个 numpy 二维数组:
>>> t
array([[-0.00880717, 0.02522217, -0.01014062],
[-0.00866732, 0.01737254, 0.05396272]])
现在使用数组切片,我可以快速获取从索引为1
的列开始的所有行中的所有项目并将它们相加:
>>> t[:, 1:].sum()
0.08641680780899146
要手动验证,会发生以下情况:
>>> 0.02522217+0.01737254+-0.01014062+0.05396272
0.08641680999999998
只是为了更好地理解 numpy 数组操作,numpy 是先遍历所有行并对行的项目求和,还是先向下一列,然后向下一列?
感谢您提出问题,@TMOTTM!
NumPy 求和语义的工作方式记录在NumPy 手册中。
总结一下手册,同时注入我自己的理解:
arr.sum()
在没有axis
参数的情况下调用只是简单地总结了数组中的所有内容。 这是实现的最直接的语义操作。arr.sum(axis=0)
将在求和时折叠轴 0(第一个轴)。arr.sum(axis=k)
将在执行求和时折叠轴k
。 典型地,轴0
在语义上被识别为行轴,轴1
是列轴,轴2
是深度轴,任何更高的都进入超立方体,不容易用语言描述。
混凝土:
arr.sum(axis=0)
。arr.sum(axis=1)
。归根结底,第 3 点是您要记住的:仔细推理您希望折叠哪个轴,您永远不会错!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.