Single cell RNA sequencing (scRNAseq) is becoming increasingly popular for transcriptomic profiling in genomics studies. However, high level of noise and excessive number of zero values in single cell gene expression measurements pose important challenges for accurate expression quantification. Here, we develop a method to impute the zero values in scRNAseq to facilitate accurate transcriptome quantification at the single cell level. Our method is based on a sparse nonnegative regression model, examines one cell at a time, and through a progressive selection strategy, infers a sparse set of local neighborhood cells that are most predictive of expression levels of the cell of interest. The zero values in the cell of interest are then imputed by a weighted summation of the expression measurements of these local neighborhood cells, with their imputation weights estimated through a quadratic programming algorithm. A key feature of our method is its ability to preserve gene expression variability across cells after imputation. We refer to our method as the Variability-preserving ImPutation for Expression Recovery (VIPER).