繁体   English   中英

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

[英]Setting an array to zero on a specified list of indices

f_1为形状(a,b)的数组, f_2 为形状(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所以这种方法显然不起作用。

您可以使用切片到 select 偶数列和 boolean 索引来设置零。

f_2[::2][f_1==0]=0

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

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

您可以将第一个维度的索引乘以 2:

i,j = np.where(f_1 == 0)
f_2[2*i,j] = 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM