在Python中使用基于第二个数组的条件的条件操作numpy数组

在Python中使用基于第二个数组的条件的条件操作numpy数组,python,python-3.x,numpy,indexing,numpy-ndarray,Python,Python 3.x,Numpy,Indexing,Numpy Ndarray,我有两个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]])

我有两个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((d1<3)&(d2==1), 10, d1)

array([[10,  2, 10],
       [ 4,  3,  4],
       [ 4,  9,  0]])
np.其中((d1