gpt4 book ai didi

python - 合并两个 numpy 掩码数组的有效方法

转载 作者:太空狗 更新时间:2023-10-30 01:00:36 25 4
gpt4 key购买 nike

我有两个要合并的 numpy 掩码数组。我正在使用以下代码:

import numpy as np

a = np.zeros((10000, 10000), dtype=np.int16)
a[:5000, :5000] = 1
am = np.ma.masked_equal(a, 0)

b = np.zeros((10000, 10000), dtype=np.int16)
b[2500:7500, 2500:7500] = 2
bm = np.ma.masked_equal(b, 0)

arr = np.ma.array(np.dstack((am, bm)), mask=np.dstack((am.mask, bm.mask)))
arr = np.prod(arr, axis=2)
plt.imshow(arr)

Plot of the resulting merged array

问题是 np.prod() 操作非常慢(在我的电脑上是 4 秒)。有没有其他方法可以更有效地获取合并数组?

最佳答案

不要使用 dstack()prod() 的最后两行,试试这个:

arr = np.ma.array(am.filled(1) * bm.filled(1), mask=(am.mask * bm.mask))

现在您根本不需要 prod(),并且完全避免分配 3D 数组。

关于python - 合并两个 numpy 掩码数组的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34013345/

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