As a promising technique to meet the drastically growing demand for both high throughput and uniform coverage in the fifth generation (5G) wireless networks, massive multiple-input multiple-output (MIMO) systems have attracted significant attention in recent years. However, in massive MIMO systems, as the density of mobile users (MUs) increases, conventional uplink training methods will incur prohibitively high training overhead, which is proportional to the number of MUs. In this paper, we propose a selective uplink training method for massive MIMO systems, where in each channel block only part of the MUs will send uplink pilots for channel training, and the channel states of the remaining MUs are predicted from the estimates in previous blocks, taking advantage of the channels' temporal correlation. We propose an efficient algorithm to dynamically select the MUs to be trained within each block and determine the optimal uplink training length. Simulation results show that the proposed training method provides significant throughput gains compared to the existing methods, while much lower estimation complexity is achieved. It is observed that the throughput gain becomes higher as the MU density increases.