eig*_*tor 3 python boolean numpy
当我有一个数组 a 和一个布尔掩码 b 时,我可以找到“掩码”向量 c。
a = np.array([1, 2, 4, 7, 9])
b = np.array([True, False, True, True, False])
c = a[b]
Run Code Online (Sandbox Code Playgroud)
现在假设情况正好相反。我有 c 和 b,希望到达 d(如下)。做到这一点最简单的方法是什么?
c = np.array([1, 4, 7])
b = np.array([True, False, True, True, False])
d = np.array([1, 0, 4, 7, 0])
Run Code Online (Sandbox Code Playgroud)
你可以使用:
d = np.zeros_like(b, dtype=c.dtype)
d[b] = c
Run Code Online (Sandbox Code Playgroud)
输出:array([1, 0, 4, 7, 0])