【发布时间】:2021-04-29 23:22:27
【问题描述】:
我有一个数组,我想屏蔽它,以便保持它的形状不变,即不删除屏蔽的元素。
例如在这段代码中
input = torch.randn(2, 5)
mask = input > 0
input = input[mask]
input = input *1000000000000
print(input)
打印输入是对未屏蔽元素进行上述数学运算的结果,并返回没有屏蔽元素的一维数组。
【问题讨论】:
我有一个数组,我想屏蔽它,以便保持它的形状不变,即不删除屏蔽的元素。
例如在这段代码中
input = torch.randn(2, 5)
mask = input > 0
input = input[mask]
input = input *1000000000000
print(input)
打印输入是对未屏蔽元素进行上述数学运算的结果,并返回没有屏蔽元素的一维数组。
【问题讨论】:
当您执行input = input[mask] 时,您正在覆盖您的原始数组。如果省略该步骤,则可以修改掩码值,但保持非掩码值不变
i = np.random.randn(2, 5)
print(i)
[[ 0.48857855 0.97799014 2.29587523 -2.37257331 1.28193921]
[ 0.62932172 1.37433223 -1.2427145 0.31424802 1.34534568]]
mask = i> 0
i[mask] *= 1000000000000
print(i)
[[ 4.88578545e+11 9.77990142e+11 2.29587523e+12 -2.37257331e+00 1.28193921e+12]
[ 6.29321720e+11 1.37433223e+12 -1.24271450e+00 3.14248021e+11 1.34534568e+12]]
【讨论】: