从矩阵创建蒙版

时间:2019-03-27 08:49:53

标签: python

嗨,我有一个这样的矩阵

A=[[nan, 4, nan],[3 , 7 , 8],[nan, 23, nan]]

我想从矩阵A中获得一个掩码,如下所示:

mask=[[nan, 0, nan],[0, 0, 0],[nan, 0, nan]]

为此我尝试过:

import numpy as np
A=[[nan, 4, nan],[3 , 7 , 8],[nan, 23, nan]]
mask=A
mask[np.isfinite(A)]=0

但这也会删除矩阵A的数值。

3 个答案:

答案 0 :(得分:1)

您可以使用masked array来掩盖那些不是'name':'content_analysis'的值,并用np.nan来填充被掩码的数组:

0

答案 1 :(得分:1)

您需要复制A以便将值保留在A中,请参阅:https://docs.python.org/2/library/copy.html

您的情况应该是

A=[[nan, 4, nan],[3 , 7 , 8],[nan, 23, nan]]
mask=np.array(A.copy())
mask[~np.isnan(A)] = 0

答案 2 :(得分:1)

使用A[~np.isnan(A)]

from numpy import *  

A=[[NaN, 4, NaN],[3 , 7 , 8],[NaN, 23, NaN]]    
A = np.array(A)
A[~np.isnan(A)] = 0

print(A)

输出

[[nan  0. nan]
 [ 0.  0.  0.]
 [nan  0. nan]]