我有两个numpy数组:
d1 = np.array([[1, 2, 1], [4, 3, 4], [4, 9, 0]])
d2 = np.array([[1, 0, 1], [0, 0, 0], [1, 0, 0]])
我想在d1
中选择d2
的值等于1
的值,并根据条件更改d1
中的选定值。
例如,我想选择d1
的值,其中d2
是1
,看看它们是否小于3
,如果它们小于3
,用10
替换它们。因此,结果将是:
np.array([[10, 2, 10], [4, 3, 4], [4, 9, 0]])
我知道如何使用循环,但如果可能的话,我对索引解决方案感兴趣。
您可以在此处使用np.where
将两个条件与bitwise AND
:链接
np.where((d1<3)&(d2==1), 10, d1)
array([[10, 2, 10],
[ 4, 3, 4],
[ 4, 9, 0]])