我有两个numpy数组,都是M x N大小。X包含随机值。Y包含真/假值。数组A包含需要替换为-1的X中行的索引。我只想替换Y为真的值。
下面是一些代码来实现这个功能:
下面是一些代码来实现这个功能:
M=30
N=40
X = np.zeros((M,N)) # random values, but 0s work too
Y = np.where(np.random.rand(M,N) > .5, True, False)
A=np.array([ 7, 8, 10, 13]), # in my setting, it's (1,4), not (4,)
for i in A[0]:
X[i][Y[A][i]==True]=-1
然而,我实际上只想替换其中的一些条目。列表B包含每个A中索引需要替换的数量。它已经排序好了,因此A [0] [0]对应于B [0]等等。此外,如果A [i] = k,则Y中相应的行至少有k个true。
B = [1,2,1,1]
然后对于每个索引 i(在循环中),
X[i][Y[A][i]==True][0:B[i]] = -1
这并不起作用。有什么解决方法吗?