python - 将一个矩阵中的值替换为相同位置的另一个矩阵中的 NA
问题描述
我有两个相同形状的矩阵都填充了浮点数,但是其中一个矩阵在某些位置有 NA。我想做到这一点,以便另一个矩阵在相同的位置也有 NA。
我能想到一些幼稚的解决方案:
1)任何形式的条件循环 - 非常慢
2) 将 NA 转换为 0,将矩阵相乘,以便没有 NA 的矩阵在所需位置获得 0,然后将它们按元素划分以恢复为原始值,最后将 0 转换为 NA - 更快,但仍然低效且笨重
我想找到解决此问题的有效方法,因为我需要执行此操作数百万次。
解决方案
IfA
是具有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
推荐阅读
- spring - 如何制作参数化作业?
- java - Java Runtime.getRuntime().exec 不能在命令中使用双引号
- java - 在 JPanel 中填充 JButton
- javascript - Sublime Text 3 构建问题 Haml/jQuery $ is not defined
- c# - WPF 绑定到三层 ObservableCollection
财产 - php - 为什么 Apache2 mod_cache 提供目录索引而不是 index.php?
- python - PIL:单击事件后跳转到下一张照片
- javascript - React Native ios 一信号推送通知 playerid
- javascript - 如何使用 CSS/javascript/jquery 隐藏焦点上的输入值?
- asp.net - ASP.NET Core 2.1 为应用程序设置 appsettings.json 的 BasePath