代码之家  ›  专栏  ›  技术社区  ›  Pazu

在指定的索引列表上将数组设置为零

  •  0
  • Pazu  · 技术社区  · 4 年前

    f_1 是一系列形状 (a,b) f2是一个形状数组 (2*a,b) . f_2 等于 f_1 如果我们将数组限制在偶数行。我想设置 f_2 从零到任何地方 f_1 为零。我尝试了以下方法:

    I = np.argwhere(f_1 == 0)
    
    for x in I:
        x[0] = 2*x[0]
    
    f_2[I] = 0
    

    但是 LA.norm(f_2) 结果在 0.0 所以这种方法显然行不通。

    0 回复  |  直到 4 年前
        1
  •  2
  •   tstanisl    4 年前

    您可以使用切片来选择偶数列,并使用布尔索引来设置零。

    f_2[::2][f_1==0]=0
    
        2
  •  1
  •   willeM_ Van Onsem    4 年前

    您可以将第一个维度的索引乘以2,如下所示:

    i,j = np.where(f_1 == 0)
    f_2[2*i,j] = 0
        3
  •  1
  •   pecey    4 年前

    为什么不简单地做这样的事情呢?

    for x in I:
        f_2[2*x[0]][x[1]] = 0