我有两个形状相同的矩阵,都填充有浮点数,但是其中一个矩阵在某些位置具有NA。我要这样做,以便其他矩阵在相同位置也有NA。
我可以想到一些幼稚的解决方案:
1)任何类型的条件循环-非常慢
2)将NA转换为0,对元素进行矩阵乘积,以使没有NA的矩阵在所需位置获得0,然后将它们按元素划分以恢复为原始值,最后将0转换为NA-速度更快,但仍然效率低下且笨拙
我想找到一种解决此问题的有效方法,因为我需要执行数百万次此操作。
答案 0 :(得分:0)
如果A
是具有NaN
值的矩阵,而B
是另一个矩阵。
import numpy as np
# Construct example matrices
A = np.random.random((3,3))
B = np.random.random((3,3))
# Set two values to np.nan
A[0,:2] = np.nan
# Set values in B to np.nan in the same locations that they occur in A
B[np.isnan(A)] = np.nan