【发布时间】:2021-05-07 01:30:52
【问题描述】:
我想知道下面的 python 脚本是否有任何优化,因为对我来说它运行得相当慢。我想要的是从矩阵 Z 的当前元素获取半径 r 内的平均值。X 和 Y 具有与 Z 相同的维度(二维数组)。有没有人有改进的解决方案?提前谢谢你。
Z_mean = np.zeros(Z.shape)
for ii, zz in np.ndenumerate(Z):
msk = (X-X[ii])**2 + (Y-Y[ii])**2 <= r**2
Z_mean[ii] = np.nanmean(Z[msk])
【问题讨论】:
-
请发布 MCVE。我不知道这里的数量是多少。这段代码的编写方式,我很惊讶它完全可以工作。你的意思是
Z_mean = np.zeros_like(Z)? -
评论/提示:分而治之!。创建 2 个循环(一个用于 ii,一个用于 zz)计算在外部循环中内部循环中不变的内容。 (我认为。不是 Python 专家,而是经验丰富的程序员)
标签: python numpy mask circular-dependency