我有阵列
A = np.array([
[1,6,5],
[2,3,4],
[8,3,0]
])
B = np.array([
[3,2,1],
[9,2,8],
[2,1,8]
])
执行a = np.argwhere(A > 4)
给出了数组A中值大于4的位置/索引数组,即[[0 1], [0 2], [2 0]]
。
我需要使用a = np.argwhere(A > 4)
中的这些索引/位置将数组B中的值替换为这些特定位置的零,即数组B现在应该
B = np.array([
[3,0,0],
[9,2,8],
[0,1,8]
])
我很高兴得到任何帮助,我将非常感激。
谢谢你:)
答案 0 :(得分:2)
应该如此简单:
B[A > 4] = 0
答案 1 :(得分:2)
一般情况下,请注意np.where
返回的索引意味着应用于numpy.ndarray
个对象,因此您可以这样做:
B[np.where(A > 4)] = 0
一般情况下,我不会将np.where
与这样的条件一起使用,我只是直接使用布尔掩码,就像John Zwinck的答案一样。但是理解你可以
>>> B[np.where(A > 4)] = 0
>>> B
array([[3, 0, 0],
[9, 2, 8],
[0, 1, 8]])