gpt4 book ai didi

python - 快速 numpy addnan

转载 作者:太空狗 更新时间:2023-10-29 20:39:57 25 4
gpt4 key购买 nike

我想添加数千个 4D 数组元素并考虑 nans。一个使用一维数组的简单示例是:

X = array([4,7,89,nan,89,65, nan])
Y = array([0,5,4, 9, 8, 100,nan])
z = X+Y
print z = array([4,12,93,9,97,165,nan])

我已经为此编写了一个简单的 for 循环,但它需要很长时间 - 不是一个明智的解决方案。另一种解决方案可能是创建更大的阵列并使用瓶颈 nansum,但这会占用我的笔记本电脑太多内存。我需要超过 11000 个案例的运行总和。

有没有人有聪明而快速的方法来做到这一点?

最佳答案

这是一种可能:

>>> x = np.array([1, 2, np.nan, 3, np.nan, 4])
... y = np.array([1, np.nan, 2, 5, np.nan, 8])
>>> x = np.ma.masked_array(np.nan_to_num(x), mask=np.isnan(x) & np.isnan(y))
>>> y = np.ma.masked_array(np.nan_to_num(y), mask=x.mask)
>>> (x+y).filled(np.nan)
array([ 2., 2., 2., 8., nan, 12.])

真正的困难在于您似乎希望将 nan 解释为零,除非特定位置的所有值都是 nan。这意味着您必须同时查看 x 和 y 以确定要替换的 nan。如果您愿意替换所有 nan 值,那么您可以简单地执行 np.nan_to_num(x) + np.nan_to_num(y)

关于python - 快速 numpy addnan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096684/

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