1.假设有一个不完整的数据,如下
20 | 30 | 25 | 1 | |
5 | 18 | 3 | 0 | |
3 | 17 | 8 | 10 | 0 |
23 | 29 | 30 | 1 | |
12 | 18 | 15 | 0 |
import pandas as pd
import numpy as np
"""read data"""
data = pd.read_csv('data.csv')
A = np.isnan(data) #get a matrix (True and False)
M = 1.*~A #M is a matrix (0 and 1), 0 reprents nan, 1 reprents complete
以上代码A是对数据做一个判断,得到一个True False矩阵,其中True代表数据缺失,False代表未缺失。
我们要得到一个掩模矩阵M,1代表数据未缺失,0代表数据缺失,所以要对A取反~A
2.有时候也可以随即生成一个数据,根据生成的数据得到一个矩阵,使其中大于某一个值为1,小于某一个值为0
import numpy as np
A = np.random.uniform(0., 1., size = [10,9])
AA = A>0.5
B = 1.*AA
A是随机生成的一个10行9列的0-1之间符合的均匀分布矩阵,当A中值大于0.5时,令B元素为1,否则为0