You could use https://github.com/dzop/emacs-jupyter
to combine Org mode + Jupyter.
Here's an example emacs configuration:
(use-package jupyter
:after org
:config
(org-babel-do-load-languages 'org-babel-load-languages '((jupyter . t)))
;; default args for jupyter-python
(setq org-babel-default-header-args:jupyter-python
'((:results . "replace")
(:async . "yes")
(:session . "py")
(:kernel . "python3"))))
After that, you could execute jupyter code block (Org Babel): #+begin_src jupyter-python
1+1
#+end_src
#+RESULTS:
: 2
You can use latex in org-mode, generate pictures, get nice git diff, export it to pdf, etc.