numpy:除最后一个轴外的所有轴求和

达斯·南瓜

如果我具有ndarray任意形状,并且我想沿除最后一个轴之外的所有轴计算和,例如,可以通过执行以下操作来实现

all_but_last = tuple(range(arr.ndim - 1))
sum = arr.sum(axis=all_but_last)

现在,tuple(range(arr.ndim - 1))我感觉并不完全直观。有没有更优雅/麻木的方式来做到这一点?

此外,如果要对形状不同的多个数组执行此操作,则必须为每个数组计算一个单独的维元组。有没有一种更规范的说法“不管尺寸是多少,只给我一个轴”?

沃伦·韦克瑟

您可以重新调整数组的形状以使除最后一个轴外的所有轴均变平(例如,形状(k, l, m, n)变为(k*l*m, n)),然后在第一个轴上求和。

例如,这是您的计算:

In [170]: arr.shape
Out[170]: (2, 3, 4)

In [171]: arr.sum(axis=tuple(range(arr.ndim - 1)))
Out[171]: array([2.85994792, 2.8922732 , 2.29051163, 2.77275709])

这是替代方法:

In [172]: arr.reshape(-1, arr.shape[-1]).sum(axis=0)
Out[172]: array([2.85994792, 2.8922732 , 2.29051163, 2.77275709])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

移动除一个文件外的所有文件

返回除一个矩阵外的所有列

Java正则表达式除最后一个字符外的所有字符

删除除一个目录外的所有目录

x轴上带有datetime格式的最后一个标签不在highchart中

重击:除最后一个元素外的所有数组

在R中,删除字符串中除最后一个点外的所有点

选择除一个元素外的所有内容

汇总除一个轴外的所有轴

正则表达式用于替换除最后一个和第一个非空格字符外的所有字符

从bash中的变量中提取除最后一个字段外的所有字段

减去ndarray的最后一个轴

_mm_set_epi8的汇编等效项,除最后一个参数外的所有参数都为零

如何创建一个除所有变量坐标外都带有冒号的Numpy索引?

在排序的多维numpy数组中沿轴查找最后一个非NaN值

Javascript-替换除最后一个定界符外的所有定界符

在numpy数组中沿轴获取最后一个元素

R对连续重复的奇数列表求和并删除除第一个列表外的所有列表

交织nd numpy数组的最后一个轴

删除每月除最后一个文件外的所有文件

复制除一个目录外的所有目录

jQuery删除除第一个和最后一个数字外的所有数字

np.nanmax()除了一个轴以外的所有轴-这是最好的方法吗?

从numpy数组中删除除最后一个非零序列以外的所有序列

选择除最后一个以外的所有元素

为什么省略了最后一个 x 轴标签?

如何迭代 numpy 数组(张量)的一个轴以外的所有向量?

在numpy中,如何比较一个轴上的所有值

c++ - 如何清除向量中除向量中的最后一个元素外的所有元素