我的问题受到另一个问题的启发:Intersection of 2d and 1d Numpy array我正在寻找一种不使用in1d
的简洁解决方案
设置就是这样。我有一个numpy array
bools
告诉我numpy array A
我应该将哪些值设置为0,称为listed_array
。但是,我想忽略listed_array
的前3列中的信息,并且只将其设置为零,如lists_array的其他列中所示。
我知道以下内容不正确:
A[listed_array[:, 3:]] = 0
我也知道我可以通过调用listed_array
来填充hstack
的这个子集,这会产生正确的输出,但是是否有更简洁的内容?
答案 0 :(得分:1)
如果我理解这个问题,应该这样做:
A[:, 3:][listed_array[:, 3:]] = 0
这是
的简明版本mask3 = listed_array[:, 3:]
A3 = A[:, 3:] # This slice is a *view* of A, so changing A3 changes A.
A3[mask3] = 0