gpt4 book ai didi

python - 将矩阵的一部分叠加在另一个之上

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:27 25 4
gpt4 key购买 nike

我有两个 numpy 数组——基本上是 SimpleCV 图像的 numpy 表示。其中一个矩阵主要包含零项,但少数不是。我想将那些非零条目复制到另一个矩阵。我可以使用简单的 for 循环轻松完成此操作,但出于清晰度和性能原因,我想使用 numpy 来完成此操作。阅读文档后,似乎屏蔽数组是可行的方法,但我无法弄清楚如何告诉 numpy 仅复制非屏蔽条目。一个虚拟的例子:

x = np.array([1,2,31,32,4,0,3,0,0,0])
y = np.ma.masked_where(x == 0, x)
z = np.array([99] * len(x))

z[:] = y

我希望 y 仅更新 z 中的非屏蔽条目,但会执行普通副本。我的方向是否正确,还是应该去别处看看?

最佳答案

为此,您可以只使用 np.where 的 3 参数形式:

>>> import numpy as np
>>> x = np.array([1,2,31,32,4,0,3,0,0,0])
>>> z = np.array([99] * len(x))
>>> y = np.where(x != 0, x, z)
>>> y
array([ 1, 2, 31, 32, 4, 99, 3, 99, 99, 99])

关于python - 将矩阵的一部分叠加在另一个之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com