【发布时间】:2018-08-06 15:35:54
【问题描述】:
如果我有一个任意形状的ndarray,并且我想计算除最后一个轴之外的所有轴的总和,例如,我可以通过这样做来实现它
all_but_last = tuple(range(arr.ndim - 1))
sum = arr.sum(axis=all_but_last)
现在,tuple(range(arr.ndim - 1)) 我感觉并不完全直观。有没有更优雅/numpy-esque 的方式来做到这一点?
此外,如果我想为多个不同形状的数组执行此操作,我将不得不为每个数组计算一个单独的维度元组。有没有更规范的方式来表达“不管尺寸是多少,只给我一个轴”?
【问题讨论】:
-
直观与否,我认为这充分利用了
axis参数。把它隐藏在一个函数中,没有人会知道其中的区别(你可以评论它)。numpy函数经常玩这种“游戏”。