use*_*040 0 python arrays numpy list-comprehension
我想用nparray1 = np.array([1, 1, 0, 0, 1])另一个数组上的值替换数组上的“1” nparray2 = np.array([8,7,4]),以生成nparray1 = np.array([8, 7, 0, 0, 4]).
我希望尽可能有效地做到这一点,因此我认为使用列表理解将是最好的选择,但是,我无法找到一种方法来做到这一点。另一种 for 循环如下所示:
nparray1 = np.array([1, 1, 0, 0, 1])
nparray2 = np.array([8,7,4])
for i in range(len(nparray1)):
if nparray1[i]==True:
nparray1[i] = nparray2[0]
nparray2 = nparray2[1:]
Run Code Online (Sandbox Code Playgroud)
您可以使用:
nparray1[nparray1 == 1] = nparray2
print(nparray1)
# Output
array([8, 7, 0, 0, 4])
Run Code Online (Sandbox Code Playgroud)