I had the same problem, and solved it by adding a leading underscore to all my imports. It doesn’t look brilliant, but it achieves what you’re after.
from __future__ import division as _division
import numpy as _np
import pandas as _pd
Only the stuff that starts without an underscore is imported when you import the module using from .. import *. or when you use tab-completion in IPython or spyder.