Could I add a one hot encoding to each feature representing "has data" versus "has no data" I have a data set that has some holes in it. I was wondering if I could add two columns for each feature representing this feature has data and this feature doesn't have data for each of my features. Would a CNN be able to take advantage of this or should I just use another method to approximate the result.

Note The reason why I'm looking for an alternative is that I have a very small dataset and I assume extrapolating would insert to great of a bias on whatever method I use determine the missing value.  

Sample Data

0.0,0.3,0.2
0.4,Nan,0.2
0.2,0.6,Nan
Nan,0.1,0.5
0.0,0.2,0.0
0.9,Nan,Nan


Would be converted to 

0.0,1,0, 0.3,1,0, 0.2,1,0
0.4,1,0, 0.0,0,1, 0.2,1,0
0.2,1,0, 0.6,1,0, 0.0,0,1
0.0,0,1, 0.1,1,0, 0.5,1,0
0.0,1,0, 0.2,1,0, 0.0,1,0
0.9,1,0, 0.0,0,1, 0.0,0,1


Since my dataset is already relatively small I don't particularly want to remove entries. This would reduce my data by roughly a third.

If this is a 'foul ball out of left field' (makes no sense and would cause more errors) how would you deal with a small data set with a decent amount of holes.

EDIT: As per @zachdj suggestion in comments 

Would be instead converted to this data set which is much smaller.

0.0,1, 0.3,1, 0.2,1
0.4,1, 0.0,0, 0.2,1
0.2,1, 0.6,1, 0.0,0
0.0,0, 0.1,1, 0.5,1
0.0,1, 0.2,1, 0.0,1
0.9,1, 0.0,0, 0.0,0
If you are using Python, the Imputer class could be a way to fill in the holes. You can use it to define what counts as a missing value and define a method for replacing those (mean, median, mode, constant value). Without knowing what the data is, it's hard to say whether this is an ideal solution, but it is a very quick one.

The Imputer class also includes a MissingIndicator method which would ouput a Boolean array based on the data. This could be another option, and then you could stack the Boolean array onto the original data.