对自定义轴求和
从 Array
arr
和长度为 k
的轴 lst
的 List
开始,对 lst
中指定的轴上的值求和的好方法是什么?当 lst={1,2,...,m}
时,这与 Nest[Total,arr,m]
相同
示例:
arr = Array[a, {2, 3, 4}];
然后 f [arr,{1}]
的尺寸为 {3,4}
,f[arr,{2}]
的尺寸为 {2 ,4}
, f[arr,{2,3}]
将具有维度 {2}
, f[arr,{1,2 ,3}]
将具有头部 Plus
和尺寸 {}
Starting with an Array
arr
, and a List
of axes lst
of length k
, what's a good way to sum out values over axes specified in lst
? When lst={1,2,...,m}
, this would be the same as Nest[Total,arr,m]
Example:
arr = Array[a, {2, 3, 4}];
Then f[arr,{1}]
would have dimensions {3,4}
, f[arr,{2}]
will have dimensions {2,4}
, f[arr,{2,3}]
will have dimensions {2}
, f[arr,{1,2,3}]
will have head Plus
and dimensions {}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Fold[Total[#, {#2}]&, arr, lst]
是否符合您的要求?更新
这个怎么样?
(并向 @belisarius 致敬=))
Does
Fold[Total[#, {#2}]&, arr, lst]
do what you want?UPDATE
How about this?
(and a tip o' the hat to @belisarius =) )
这是你想要的吗?
Does this do what you want?