我有两个相同大小的数组:
import numpy as np
myArray = np.array([[5,3,2,1,2],
[2,5,3,3,3]])
myotherArray = np.array([[0,1,1,0,0],
[0,0,1,0,0]])
我喜欢将myArray
中的所有值加倍5,但只有在myotherArray
中的相同索引上,值为0才是。我该怎么做呢?
我尝试过这个,但它没有做任何事情。
myArray[myotherArray == 0]*5
我的预期输出是myArray
([[25,3,2,5,10],
[10,25,3,15,15]])
答案 0 :(得分:4)
到位:
>>> myArray[myotherArray == 0] *= 5
>>> myArray
array([[25, 3, 2, 5, 10],
[10, 25, 3, 15, 15]])
答案 1 :(得分:3)
不确定这是否是最有效的方法,但是:
>>> myArray * np.where(myotherArray == 0, 5, 1)
array([[25, 3, 2, 5, 10],
[10, 25, 3, 15, 15]])
另一种选择:
>>> np.where(myotherArray == 0, 5*myArray, myArray)
array([[25, 3, 2, 5, 10],
[10, 25, 3, 15, 15]])