Sparse unmixing is a promising approach that acts as a semi-supervised unmixing strategy by assuming that the observed image signatures can be expressed in the form of linear combinations of a number of pure spectral signatures that are known in advance. However, conventional sparse unmixing involves finding the optimal subset of signatures for the observed data in a very large standard spectral library, without considering the spatial information. In this paper, a new sparse unmixing algorithm based on non-local means, namely non-local sparse unmixing (NLSU), is proposed to perform the unmixing task for hyperspectral remote sensing imagery. In NLSU, the non-local means method, as a regularizer for sparse unmixing, is used to exploit the similar patterns and structures in the abundance image. The NLSU algorithm based on the sparse spectral unmixing model can improve the spectral unmixing accuracy by incorporating the non-local spatial information by means of a weighting average for all the pixels in the abundance image. Five experiments with three simulated and two real hyperspectral images were performed to evaluate the performance of the proposed algorithm in comparison to the previous sparse unmixing methods: sparse unmixing via variable splitting and augmented Lagrangian (SUnSAL) and sparse unmixing via variable splitting augmented Lagrangian and total variation (SUnSAL-TV). The experimental results demonstrate that NLSU outperforms the other algorithms, with a better spectral unmixing accuracy, and is an effective spectral unmixing algorithm for hyperspectral remote sensing imagery.