Hoping someone ports this to Vim
(Don't get me wrong. I am not saying that Vim is bad. But this kind of thing just does not fit its mission statement)
Emacs was built for that. Vim was not. Which by the way does not say anything good or bad about either of them. But I would dare say that Vim is most commonly used alongside a terminal, whereas Emacs users tend to run terminals inside Emacs. Hence your normal workflow would be to run iPython alongside Vim or within Emacs.