Currently the order in the CSV file is preserved.
We should populate features and testFeatures tensors with their columns being in the same order as featureColumns.
The runtime complexity of the filterColumns method should not increase if possible, and we should be careful about space complexity as people are likely to work with large datasets which we already load into memory all at once.