小编use*_*389的帖子

pytorch / numpy 中具有任意和可变维数的部分切片

给定 numpy(或 pytorch)中的二维张量,我可以同时沿所有维度进行部分切片,如下所示:

>>> import numpy as np
>>> a = np.arange(2*3).reshape(2,3)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> a[1:,1:]
array([[ 5,  6,  7],
       [ 9, 10, 11]])
Run Code Online (Sandbox Code Playgroud)

如果我在实现时不知道维数,如何实现相同的切片模式,无论张量中的维数如何?(即我想要a[1:]如果a只有一维、a[1:,1:]二维、a[1:,1:,1:]三维等等)

如果我可以用如下所示的一行代码来完成它,那就太好了,但这是无效的:

a[(1:,) * len(a.shape)]  # SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我对适用于 pytorch 张量的解决方案特别感兴趣(只需将上面的 numpy 替换为 torch,示例是相同的),但我认为如果该解决方案同时适用于 numpy 和 pytorch,那么它可能也是最好的。

python numpy pytorch

4
推荐指数
1
解决办法
4557
查看次数

标签 统计

numpy ×1

python ×1

pytorch ×1