python相当于MATLAB语句A(B == 1)= C.

时间:2014-06-24 01:39:46

标签: python numpy indexing

我有三个numpy数组如下:

A = [1, 2, 3, 4, 5]
B = [0, 1, 0, 0, 1]
C = [30, 40]

我想替换A中它们的等价物等于1的元素。对于上面的例子,我想得到这个:

A = [1, 30, 3, 4, 40]

在MATLAB中,我可以这样做:

A(B==1) = C'

您是否知道Python中的等效代码(最好是A和B也是多维的时候有效)?提前致谢。

1 个答案:

答案 0 :(得分:1)

语法非常相似:

>>> import numpy as np
>>> A = np.array([1, 2, 3, 4, 5])
>>> B = np.array([0, 1, 0, 0, 1])
>>> C = np.array([30, 40])
>>> A[B==1] = C
>>> A
array([ 1, 30,  3,  4, 40])