【问题标题】:Masking arrays using numpy使用 numpy 屏蔽数组
【发布时间】:2021-04-29 23:22:27
【问题描述】:

我有一个数组,我想屏蔽它,以便保持它的形状不变,即不删除屏蔽的元素。

例如在这段代码中

input = torch.randn(2, 5)

mask = input > 0
input = input[mask]
input = input *1000000000000

print(input)

打印输入是对未屏蔽元素进行上述数学运算的结果,并返回没有屏蔽元素的一维数组。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    当您执行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]]
    

    【讨论】:

    • 谢谢,如果我添加的是我的 'i' 数组到另一个数组,即 100000000 的 insead,我添加 np.random.randn (2,5)。我怎样才能保持相同的形状?
    • 我不太清楚你的意思,你能问一个新问题来提供一个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2011-08-11
    • 2017-08-19
    • 2021-01-14
    相关资源
    最近更新 更多