嗨,我有一个这样的矩阵
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的数值。
答案 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]]