我想添加数以千计的4D数组元素和计算南斯。 使用1D阵列的一个简单示例是:
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箱的流水账。在
有没有人有一个聪明而快速的方法来做到这一点?在
有一种可能性:
真正的困难是您似乎希望
nan
被解释为零,除非某个特定位置的所有值都是nan
。这意味着您必须同时查看x和y来确定要替换哪些nan。如果您可以替换所有的nan值,那么您可以简单地执行np.nan_to_num(x) + np.nan_to_num(y)
。在你可以这样做:
在数组中查找索引中都有
NaN
的位置。然后,执行@mgilson建议的基本操作,如make copies和将NaN
替换为0.0,将两个数组相加,然后将上面标记的索引替换为np.NaN
。在相关问题 更多 >
编程相关推荐