我有2个二进制1xM矩阵,比方说A和B:
A = [0 1 1 0 1 1 1]
B = [0 0 0 1 1 0 0]
我想找到矩阵C,使得B的值以A的值为条件。
即。 Matlab中的C = B(A)
。
Python中是否有使用此条件赋值生成C的函数?
答案 0 :(得分:1)
<强>更新强>
你的第二个例子,在MATLAB中可以像这样处理:
a = [1 1 1 1 1]
b = rand(1,5)
a(b<0.4) = 0
a =
1 1 1 1 1
b =
0.0975 0.2785 0.5469 0.9575 0.9649
a =
0 0 1 1 1
在Python中也一样:
import numpy as np
A = np.array([1, 1, 1, 1, 1])
B = np.array([0.0975, 0.2785, 0.5469, 0.9575, 0.9649])
b = B <0.4
A[b] = 0
print A
[0 0 1 1 1]
正如您所提到的,如果两个数组都是二进制文件,那么您可能希望将A
数组用作逻辑数组,以告诉您B
的哪些成员选择(True或False)。从这个意义上说,在MATLAB中你会做这样的事情:
C = A(B==1)
或
C = A(logical(B))
然后结果将是A
的元素,其中B
是True
C =
[0 1]
在Python中,使用Masking可以完成同样的事情:
import numpy as np
A = np.array([0, 1, 1, 0, 1, 1, 1])
B = np.array([0, 0, 0, 1, 1, 0, 0])
b = B == 1
print A[b]
这也会导致:
[0 1]