在Python中使用基于第二个数组的条件的条件操作numpy数组
我有两个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]])
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