基于另一个数组Python更新数组

时间:2013-11-28 00:21:27

标签: python arrays numpy

我有两个相同大小的数组:

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]])

2 个答案:

答案 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]])