Common wisdom argues that, in general, large trades cause large price changes, whereas small trades cause small price changes. However, for extremely large price changes, the trade size and news play a minor role, while liquidity (especially price gaps on the limit order book) is a more influential factor. Hence, there might be other factors influencing the immediate price impacts of trades. In this paper, through mechanical analysis of price variations before and after a trade of arbitrary size, we identify that the trade size, the bid-ask spread, the price gaps and the outstanding volumes at the bid and ask sides of the limit order book have an impact on the changes in prices. We propose two regression models to investigate the influence of these microscopic factors on the price impact of buyer-initiated partially filled trades, seller-initiated partially filled trades, buyer-initiated filled trades and seller-initiated filled trades. We find that they have quantitatively similar explanatory powers and these factors can account for up to 44% of the price impacts. Large trade sizes, wide bid-ask spreads, high liquidity at the same side and low liquidity at the opposite side will cause a large price impact. We also find that the liquidity at the opposite side has a more influential impact than the liquidity at the same side. Our results shed new light on the determinants of immediate price impacts.