📓 A growing collection of Jupyter Notebooks written in Python, OCaml and Julia for science examples, algorithms, visualizations etc
Clone or download
Latest commit d39acff Jan 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
agreg Typo Jan 10, 2019
art Ajout capture écran Feb 8, 2018
data From https://github.com/parrt/lolviz Jul 2, 2018
datachallenges Forgot this 🐍 Python file. Feb 8, 2018
euler https://nbviewer.jupyter.org/ now works. Nov 27, 2018
simus https://nbviewer.jupyter.org/ now works. Nov 27, 2018
.gitignore Added a notebook https://nbviewer.jupyter.org/github/Naereen/notebook… Jul 16, 2018
A_short_study_of_Renyi_entropy.ipynb Inspired by https://www.johndcook.com/blog/2018/11/21/renyi-entropy/ Nov 22, 2018
A_short_study_of_Renyi_entropy.py Inspired by https://www.johndcook.com/blog/2018/11/21/renyi-entropy/ Nov 22, 2018
Algebraic_integration_from_Ludovic_Sacchelli_s_PhD_thesis.ipynb Better, but still failure. I stop NOW Jul 3, 2018
Algebraic_integration_from_Ludovic_Sacchelli_s_PhD_thesis.py Better, but still failure. I stop NOW Jul 3, 2018
Algorithmes_pour_l_ecriture_inclusive.ipynb Cf #21 Dec 26, 2018
Algorithms_to_compute_eigen_values_and_eigen_vectors_in_Julia.ipynb See #16 Apr 30, 2018
Algorithms_to_compute_eigen_values_and_eigen_vectors_in_Julia.jl See #16 Apr 30, 2018
An_Identiconizer_generator_implementation_in_Python.ipynb Done Nov 26, 2017
An_Identiconizer_generator_implementation_in_Python.py Done Nov 26, 2017
Basic plotting and matrix operations (Octave).ipynb Fixed Octave notebook demo, using latest Octave_kernel by @Calysto. 🚀 Jun 21, 2017
Basic plotting and matrix operations (Octave).m Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Basic_plotting_and_matrix_operations__Octave__with_RISE_slides.ipynb Slide show with RISE by @damianavila, https://github.com/damianavila/… Jun 23, 2017
Benchmark_between_Python_and_Julia.ipynb Added a smarter version of Romberg integration, without dictionary... Jun 30, 2017
Benchmark_between_Python_and_Julia.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Benchmark_of_the_SHA256_hash_function__Python_Cython_Numba.ipynb Fail to use Cython correctly for this SHA-256 function. Issues betwee… Jun 21, 2017
Benchmark_of_the_SHA256_hash_function__Python_Cython_Numba.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Blurring_a_part_of_an_image_in_Python.ipynb See #3 Jan 17, 2018
Blurring_a_part_of_an_image_in_Python.py Adding Python code Jan 17, 2018
DM_Images_debut.ipynb I like to help those who ask. Jan 8, 2019
DM_Images_debut.py I like to help those who ask. Jan 8, 2019
Demo_of_RISE_for_slides_with_Jupyter_notebooks__Julia.ipynb Ajout vérification des numéros IMEI qui utilisent aussi la formule de… Feb 2, 2018
Demo_of_RISE_for_slides_with_Jupyter_notebooks__OCaml.ipynb Add two notebooks requiring the RISE extension, demo of slideshows wi… Sep 21, 2017
Demo_of_RISE_for_slides_with_Jupyter_notebooks__Python.ipynb Add two notebooks requiring the RISE extension, demo of slideshows wi… Sep 21, 2017
Demonstration of numpy.polynomial.Polynomial and nice display with LaTeX and MathJax (python3).ipynb https://nbviewer.jupyter.org/ now works. Nov 27, 2018
Exponential_Integral_Python.ipynb Done Jan 24, 2018
Exponential_Integral_Python.py Done Jan 24, 2018
Floating_point_error_propagation_in_polynomial_multiplication_with_Fast-Fourier_Transform.ipynb Added a small experiments about floating-point error propagation when… May 17, 2017
Floating_point_error_propagation_in_polynomial_multiplication_with_Fast-Fourier_Transform.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Generating_permutations_with_Python.ipynb New notebook, one some algorithms to generate the permutations of a l… Feb 6, 2017
Generating_permutations_with_Python.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Generer_des_fausses_citations_latines_du_Roi_Loth.ipynb Typo Dec 4, 2018
Generer_des_fausses_citations_latines_du_Roi_Loth.py Typo Dec 4, 2018
HEADER.md Fixed links. Oct 8, 2017
Introduction_aux_algorithmes_de_bandit__comme_UCB1_et_Thompson_Sampling.ipynb Typo Jan 17, 2018
Introduction_aux_algorithmes_de_bandit__comme_UCB1_et_Thompson_Sampling.py Done Jan 10, 2018
Kullback-Leibler_divergences_in_native_Python__Cython_and_Numba.ipynb See #18 Apr 27, 2018
Kullback_Leibler_divergences_in_native_Python__Cython_and_Numba.py done for now Apr 27, 2018
LICENSE.txt First commit: README.md is already done. Jun 25, 2016
Living_in_a_noisy_world_with_James_Powell_rwatch_module.ipynb the dictionary (or Mapping) used by getrwatch/setrwatch is used direc… May 13, 2017
Living_in_a_noisy_world_with_James_Powell_rwatch_module.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Makefile No need Jan 24, 2018
Manual_implementation_of_some_hash_functions.ipynb Typo on Markown syntax inside a piece of HTML code. Fixed 🔧 Jun 21, 2017
Manual_implementation_of_some_hash_functions.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Manual_implementation_of_the_Mersenne_twister_PseudoRandom_Number_Generator__PRNG_.ipynb Inspired by https://www.johndcook.com/blog/2018/11/21/renyi-entropy/ Nov 22, 2018
Manual_implementation_of_the_Mersenne_twister_PseudoRandom_Number_Generator__PRNG_.py Added a link to https://realpython.com/python-random/ for the noteboo… Jul 13, 2018
Merge-k-sorted-lists.ipynb Added a Python 3 implementation of the problem from https://tianrunhe… Aug 28, 2017
Merge-k-sorted-lists.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
NetHack's functions Rne, Rn2 and Rnz in Python 3.ipynb Inspired by 'https://eev.ee/blog/2018/01/02/random-with-care/#beware-… Jan 4, 2018
NetHack's functions Rne, Rn2 and Rnz in Python 3.py Python code for this small notebook. Jan 5, 2018
Obfuscated_code_or_piece_of_art.ipynb Added description for this 'Obfuscated_code_or_piece_of_art.ipynb' no… Mar 18, 2017
Obfuscated_code_or_piece_of_art.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Oraux_CentraleSupelec_PSI__Juin_2017.ipynb Adding a French notebook 🇫🇷 📓 Corrections d'exercices du concours Cen… Jun 23, 2017
Oraux_CentraleSupelec_PSI__Juin_2017.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Oraux_CentraleSupelec_PSI__Juin_2018.ipynb Typo, done Jun 9, 2018
Oraux_CentraleSupelec_PSI__Juin_2018.py Typo, done Jun 9, 2018
Profiling_in_a_Jupyter_notebook.ipynb Test of profiling with time/timeit/prun/lprun/mrun some Python or Cyt… May 22, 2017
Py_Pi_Day_2017.ipynb Added a link to http://agreg.org/LogoAgreg.gif May 29, 2017
Py_Pi_Day_2017.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
README.md https://nbviewer.jupyter.org/ now works. Nov 27, 2018
Runge-Kutta_methods_for_ODE_integration_in_Julia.ipynb Finished the Julia version of #8 implementing the Runge-Kutta methods… Nov 25, 2017
Runge-Kutta_methods_for_ODE_integration_in_Julia.jl Finished the Julia version of #8 implementing the Runge-Kutta methods… Nov 25, 2017
Runge-Kutta_methods_for_ODE_integration_in_OCaml.ipynb OCaml :caml: notebook 📓 showing the Runge-Kutta method for approximat… Nov 26, 2017
Runge-Kutta_methods_for_ODE_integration_in_OCaml.ml OCaml :caml: notebook 📓 showing the Runge-Kutta method for approximat… Nov 26, 2017
Runge-Kutta_methods_for_ODE_integration_in_Python.ipynb Added first Python implementation of the Runge-Kutta methods, order 1… Nov 23, 2017
Runge-Kutta_methods_for_ODE_integration_in_Python.py Added first Python implementation of the Runge-Kutta methods, order 1… Nov 23, 2017
Short_study_of_the_Lempel-Ziv_complexity.ipynb Update this notebook from Naereen/Lempel-Ziv_Complexity#1 📝 Jul 1, 2017
Short_study_of_the_Lempel-Ziv_complexity.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Simulated_annealing_in_Python.ipynb 🚀 Added an example of the simulated annealing algorithm. Close #5. Jul 20, 2017
Simulated_annealing_in_Python.py Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Solving_an_equation_and_the_Lambert_W_function.ipynb Fix issue of MathJax on titles and wrong anchors. Jan 31, 2018
Solving_an_equation_and_the_Lambert_W_function.py Fix issue of MathJax on titles and wrong anchors. Jan 31, 2018
Test_for_Binder__access_local_packages.ipynb Added a notebook https://nbviewer.jupyter.org/github/Naereen/notebook… Jul 16, 2018
Testing_the_lolviz_Python_module.ipynb From https://github.com/parrt/lolviz Jul 2, 2018
Testing_the_lolviz_Python_module.py From https://github.com/parrt/lolviz Jul 2, 2018
Tutorial on head and tail (bash).ipynb A nice extension for a clever use of notebooks for slideshows : nbpre… Sep 6, 2016
Tutorial on head and tail (bash).sh Added .py executable versions of these notebooks. 🚀 Oct 6, 2017
Verification_de_numeros_CB_RIB_NIRPP_IBAN.ipynb Ajout vérification des numéros IMEI qui utilisent aussi la formule de… Feb 2, 2018
Verification_de_numeros_CB_RIB_NIRPP_IBAN.py Ajout vérification des numéros IMEI qui utilisent aussi la formule de… Feb 2, 2018
_config.yml Set theme jekyll-theme-slate Feb 27, 2017
export.sh Added an easy script to convert to HTML and send to zamok Mar 14, 2017
kullback.py Fin de ce document présentant une introduction aux algorithmes de ban… Jan 9, 2018
requirements.txt Better README.md file (more details, mainly for the requirements). Jun 26, 2016

README.md

Jupyter Notebooks 📓 by Naereen @ GitHub

This repository hosts some Jupyter Notebooks, covering various subjects. Go to nbviewer to read them.

At the beginning, this repository was only here to host some small experiments, for me to learn how to use the wonderful Jupyter tools correctly (baby notebooks 🍼)...

🐚 Bash

🐍 Python

I am a passionate user of the Python programming language.

Science

Teaching

Numerical simulations for dice games (🇫🇷 in French)

🎨 Art

art/identicons.png

art/citation_du_roi_Loth_aleatoires.png

I will try to write more artistic notebooks, showcasing nice pieces of code 🎨!

Experiments with Python

  • This small notebook (on GitHub?) is a fun experiment, where I tried to use James Powell (@dutc) rwatch module to write a Python context manager to add a Gaussian white noise to every numbers inside the context... Something like: with noise(): x = 10 will produce x = 10.325 for instance... It fails, but I almost got it, and it works (without breaking the interpreter) for complex numbers. That's already intersting!

  • This notebook (on GitHub?) is a small experiment, written quickly, about floating-point error propagation when using a non-naive polynomial multiplication with evaluation-and-interpolation. Sadly, this approach fails!

  • A tiny presentation on how to do time/memory profiling (on GitHub?) from inside the Jupyter notebook interface, with various approaches.

Experiments with Jupyter

With Julia

🐫 OCaml

And more will come... soon! 🚅

made-with-jupyter made-with-python made-with-ocaml made-with-julia


1. How to read these documents?

1.a. View the notebooks statically 📝

1.b. Play with the notebooks dynamically 💥

MyBinder

Anyone can use the mybinder.org website (by clicking on the icon above) to run the notebook in her/his web-browser. You can then play with it as long as you like, for instance by modifying the values or experimenting with the code.

MyBinder v2

Note: Only the Python kernel is supported on the MyBinder interface!


2. Requirements to run the notebooks locally?

All the requirements can be installed with pip and by running a few python -m ... commands.

Note: if you use Python 3 instead of Python 2, you might have to replace pip and python by pip3 and python3 in the next commands (if both pip and pip3 are installed).

2.a. Jupyter Notebook and IPython

sudo pip install jupyter ipython

It will also install all the dependencies, afterward you should have a jupyter-notebook command (or a jupyter command, to be ran as jupyter notebook) available in your PATH:

$ whereis jupyter-notebook
jupyter-notebook: /usr/local/bin/jupyter-notebook
$ jupyter-notebook --version  # version >= 4 is recommended
4.2.1

2.b. Other kernels (optional):

They are only needed to run the notebooks written for Bash or Octave (or OCaml):

2.b.1. GNU Bash kernel

$ bash --version | head -n1
GNU bash, version 4.3.42(1)-release (x86_64-pc-linux-gnu)
  • And then install the kernel bash_kernel with these two commands:
sudo pip install bash_kernel
python -m bash_kernel.install

2.b.2. GNU Octave kernel

  • You have to have octave installed (installable with the package manager on major Linux distributions (apt-get, pacman, yum etc), installable with brew or macports on Mac OS, available on Windows through cygwin or natively):
$ octave --version | head -n1
GNU Octave, version 4.0.0
  • Your version of Octave should be installed with gnuplot support (it is usually the case):
$ gnuplot --version | head -n1
gnuplot 5.0 patchlevel 1
  • And then install the kernel bash_kernel with these two commands:
sudo pip install octave_kernel
python -m octave_kernel.install

2.b.3. OCaml kernel: OCaml-Jupyter

It is quite easy to install, with opam:

opam install jupyter

I started by using this OCaml kernel called IOCaml. The instructions were not so simple, cf. the tutorial by @andrewray on iocaml's wiki. It was prone to some bugs, and I had to manually implement a script to be able to convert the notebooks to PDF with jupyter-nbconvert --to pdf. Note that I also had to write a custom Exporter for jupyter-nbconvert in order to convert the notebooks to OCaml scripts (.ml).


💁 More information?

📜 License ? GitHub license

All the notebooks in this repository are published under the terms of the MIT License (file LICENSE.txt). © Lilian Besson, 2016-18.

Maintenance Ask Me Anything ! Analytics

ForTheBadge uses-badges ForTheBadge uses-git

ForTheBadge built-with-science