To answer your first question, you should represent the lack of an edge as +inf (because the filtration is being represented as a distance matrix, and so an infinite distance means that an edge between those nodes will never be introduced).

With regard to your second question, it sort of depends; what do these feature vectors represent? I can think of two possibilities of getting a filtration from these: (1) if you can pick some ordering on the feature vectors (say, for example, lexicographic ordering, where (x_1, ..., x_n) < (y_1, ..., y_n) if x_1 < y_1, or if x_j = y_j for all j from 1 to (i - 1) and x_i < y_i), and then create a filtration by introducing nodes by their feature vector order - in this node-ordered case, at each step you would introduce the next node in the ordering and all of its connections to previous nodes.

(2) You might think about introducing edges based off of cosine similarity between the feature vectors of the nodes on either side of that edge; then you could filter by values of the similarity (i.e., introducing edges which connect nodes with very similar feature vectors first, and gradually decreasing the required threshold of similarity).

Hope this helps.