【发布时间】:2021-09-25 08:35:52
【问题描述】:
我想“反转”切片操作。比如原来的数组是:
import numpy as np
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
>>> array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
然后,我对这个数组进行切片,并对其进行一些操作(乘以 2):
b = 2 * a[::-1,::2]
>>> array([[18, 22],
[10, 14],
[ 2, 6]])
如何将b中的所有元素放回a中的原始位置(注意轴0翻转),即最终结果应该是:
>>> array([[ 2, 0, 6, 0],
[10, 0, 14, 0],
[18, 0, 22, 0]])
我认为应该使用 as_strided 和 flip 之类的东西,但我似乎无法让它工作。感谢您的帮助!
【问题讨论】:
-
我打算在反向传播中使用它,所以梯度应该是0