diff --git a/1-iris-data-analysis-rust.ipynb b/1-iris-data-analysis-rust.ipynb index 39cfa4c..91aab93 100644 --- a/1-iris-data-analysis-rust.ipynb +++ b/1-iris-data-analysis-rust.ipynb @@ -1,5 +1,46 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "f4e8c1d9-c986-44cf-96cf-52328f5af66d", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bbb265f4-a05b-4e51-8320-adf9b83a78fa", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "cc8e31fd", diff --git a/2-ndarray-tutorial.ipynb b/2-ndarray-tutorial.ipynb index 9bea92e..f93bd22 100644 --- a/2-ndarray-tutorial.ipynb +++ b/2-ndarray-tutorial.ipynb @@ -1,5 +1,46 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "c5b88d62-9e09-466d-9eb9-07f175a03faa", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c41f994-6a68-49b0-9b20-cd79f63c104c", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "69efca5e", diff --git a/3-polars-tutorial-part-1.ipynb b/3-polars-tutorial-part-1.ipynb index 5703d06..c1f9af4 100644 --- a/3-polars-tutorial-part-1.ipynb +++ b/3-polars-tutorial-part-1.ipynb @@ -1,5 +1,46 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "3b86ffc2-eefc-493c-9828-727b5b882ed4", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8572698f-2fb8-461b-8e70-9f4a2b26b423", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "1aa30ace", diff --git a/4-polars-tutorial-part-2.ipynb b/4-polars-tutorial-part-2.ipynb index c6b65ba..6617171 100644 --- a/4-polars-tutorial-part-2.ipynb +++ b/4-polars-tutorial-part-2.ipynb @@ -1,5 +1,46 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "3d3de788-4962-4e37-b74c-40d12f939401", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72c53213-90b5-496c-92c9-cf2bbedc07e0", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "1aa30ace", diff --git a/5-probability-theory-tutorial.ipynb b/5-probability-theory-tutorial.ipynb index d400a8f..87bb8c8 100644 --- a/5-probability-theory-tutorial.ipynb +++ b/5-probability-theory-tutorial.ipynb @@ -1,11 +1,52 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "e01fb3ac-9ab7-4723-8cbc-08434c9e158f", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d278011-f31a-4e13-890f-1ad8533396b8", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "ac5c5759", "metadata": {}, "source": [ - "# Install Dependencies" + "## Install Dependencies" ] }, { diff --git a/6-plotters-tutorial-part-1.ipynb b/6-plotters-tutorial-part-1.ipynb index 777c326..8c0ba3b 100644 --- a/6-plotters-tutorial-part-1.ipynb +++ b/6-plotters-tutorial-part-1.ipynb @@ -1,5 +1,46 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "7c29a52e-53d1-48fc-9f9d-b7cccbe16187", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eeea5473-d6b5-4f9a-8fc0-8608ee36a2f8", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "71294001", diff --git a/7-calculus-tutorial-part-1.ipynb b/7-calculus-tutorial-part-1.ipynb index 07f6af5..078e183 100644 --- a/7-calculus-tutorial-part-1.ipynb +++ b/7-calculus-tutorial-part-1.ipynb @@ -1,5 +1,46 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "0f6d8195-c607-4a0a-babe-00ea6cf6d575", + "metadata": {}, + "source": [ + "## Google Colab & Binder Rust Setup\n", + "\n", + "The following cell is used to set up a Rust environment on Colab and Binder. Don't execute it locally!\n", + "\n", + "Many thanks to [`mateusvmv`](https://github.com/mateusvmv) for this hack in [`gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3`](https://gist.github.com/korakot/ae95315ea6a3a3b33ee26203998a59a3?permalink_comment_id=4715636#gistcomment-4715636)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a69893a-9677-4256-9ce2-69a9189931ea", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /root/.local/share/jupyter/kernels\n", + "\n", + "# Nix install\n", + "!curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --init none --no-confirm\n", + "!ln -s /root/.nix-profile/bin /opt/bin\n", + "\n", + "# Install evcxr\n", + "!nix-env -f '' -iA cargo rustc evcxr sccache\n", + "!evcxr_jupyter --install\n", + "\n", + "# Configure evcxr\n", + "!mkdir -p /root/.config/evcxr\n", + "!printf \":timing\\n:sccache 1\" > /root/.config/evcxr/init.evcxr\n", + "\n", + "# IPC Proxy (https://stackoverflow.com/a/74821762)\n", + "!wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1\n", + "!python install_ipc_proxy_kernel.py --quiet --kernel=rust --implementation=ipc_proxy_kernel.py > /dev/null\n", + "\n", + "# To avoid confusion between kernel names\n", + "!sed -i 's/\"display_name\": \"Rust\"/\"display_name\": \"Rust-TCP\"/g' /root/.local/share/jupyter/kernels/rust_tcp/kernel.json" + ] + }, { "cell_type": "markdown", "id": "0ad92c1a", diff --git a/README.md b/README.md index dfbcb94..3aabb29 100644 --- a/README.md +++ b/README.md @@ -62,15 +62,15 @@ To use the notebooks in this repository, you need to set up your environment. Fo ## πŸ“Œ Tutorials -| ID | Article | Thumbnail | Read Time (mins) | Description | Open on GitHub | Launch on Binder | -|----|---------------|-----------|:-------------:|-------------|----------------|------------------| -| 1 | [Rust: The Next Big Thing in Data Science](https://towardsdatascience.com/rust-the-next-big-thing-in-data-science-319a03305883) | ![Article 1](https://miro.medium.com/v2/resize:fit:720/format:webp/1*2jSP2n1KukVJYKVg2u4RuA.png) | 25 | A Contextual Guide for Data Scientists and Analysts. | [GitHub](./1-iris-data-analysis-rust.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=1-iris-data-analysis-rust.ipynb) | -| 2 | [The Ultimate Ndarray Handbook: Mastering the Art of Scientific Computing with Rust](https://towardsdatascience.com/the-ultimate-ndarray-handbook-mastering-the-art-of-scientific-computing-with-rust-ef5ab767212a) | ![Article 2](https://miro.medium.com/v2/resize:fit:720/format:webp/1*bgmO2hUgZXpCHPC1XaBy3w.png) | 31 | This article is an overview of different Rust’s built-in data structures and a deep dive into the Ndarray library. | [GitHub](./2-ndarray-tutorial.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=2-ndarray-tutorial.ipynb) | -| 3 | [Rust Polars: Unlocking High-Performance Data Analysis β€” Part 1](https://towardsdatascience.com/rust-polars-unlocking-high-performance-data-analysis-part-1-ce42af370ece) | ![Article 3](https://miro.medium.com/v2/resize:fit:720/0*Le8YYCDuEhc4A7tN) | 32 | This article is part 1 of exploring the Polars library. | [GitHub](./3-polars-tutorial-part-1.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=3-polars-tutorial-part-1.ipynb) | -| 4 | [Rust Polars: Unlocking High-Performance Data Analysis β€” Part 2](https://towardsdatascience.com/rust-polars-unlocking-high-performance-data-analysis-part-2-7c58a3cb7a1f) | ![Article 4](https://miro.medium.com/v2/resize:fit:720/format:webp/1*wbXTzoBWnmGXH7WVkAu4PQ.jpeg) | 24 | This article is part 2 of exploring the Polars library. | [GitHub](./4-polars-tutorial-part-2.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=4-polars-tutorial-part-2.ipynb) | -| 5 | [Exploring Probability Theory with Rust: A Pioneering Journey](https://levelup.gitconnected.com/exploring-probability-theory-with-rust-a-pioneering-journey-749ce7cdf747) | ![Article 5](https://miro.medium.com/v2/resize:fit:720/0*gSrM4bMl7eBy6jxM) | 38 | This article is a deep dive into probability theory with Rust. | [GitHub](./5-probability-theory-tutorial.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=5-probability-theory-tutorial.ipynb) | -| 6 | [Rustic Data: Data Visualization with Plotters β€” Part 1](https://towardsdatascience.com/rustic-data-data-visualization-with-plotters-part-1-7a34b6f4a603) | ![Article 6](https://miro.medium.com/v2/resize:fit:720/format:webp/1*SDpfhuT8gB24i2hRlZKS3Q.png) | 20 | A detailed guide on how to transform raw numbers into stunning graphs in Rust | [GitHub](./6-plotters-tutorial-part-1.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=6-plotters-tutorial-part-1.ipynb) | -| 7 | Todo | Todo | Todo | Todo | [GitHub](./7-calculus-tutorial-part-1.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=7-calculus-tutorial-part-1.ipynb) | +| ID | Article | Thumbnail | Read Time (mins) | Description | Open on GitHub | Launch on Binder | Launch on Colab | +|----|---------------|-----------|:-------------:|-------------|----------------|------------------|------------------| +| 1 | [Rust: The Next Big Thing in Data Science](https://towardsdatascience.com/rust-the-next-big-thing-in-data-science-319a03305883) | ![Article 1](https://miro.medium.com/v2/resize:fit:720/format:webp/1*2jSP2n1KukVJYKVg2u4RuA.png) | 25 | A Contextual Guide for Data Scientists and Analysts. | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./1-iris-data-analysis-rust.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=1-iris-data-analysis-rust.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/1-iris-data-analysis-rust.ipynb) | +| 2 | [The Ultimate Ndarray Handbook: Mastering the Art of Scientific Computing with Rust](https://towardsdatascience.com/the-ultimate-ndarray-handbook-mastering-the-art-of-scientific-computing-with-rust-ef5ab767212a) | ![Article 2](https://miro.medium.com/v2/resize:fit:720/format:webp/1*bgmO2hUgZXpCHPC1XaBy3w.png) | 31 | This article is an overview of different Rust’s built-in data structures and a deep dive into the Ndarray library. | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./2-ndarray-tutorial.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=2-ndarray-tutorial.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/2-ndarray-tutorial.ipynb) | +| 3 | [Rust Polars: Unlocking High-Performance Data Analysis β€” Part 1](https://towardsdatascience.com/rust-polars-unlocking-high-performance-data-analysis-part-1-ce42af370ece) | ![Article 3](https://miro.medium.com/v2/resize:fit:720/0*Le8YYCDuEhc4A7tN) | 32 | This article is part 1 of exploring the Polars library. | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./3-polars-tutorial-part-1.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=3-polars-tutorial-part-1.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/3-polars-tutorial-part-1.ipynb) | +| 4 | [Rust Polars: Unlocking High-Performance Data Analysis β€” Part 2](https://towardsdatascience.com/rust-polars-unlocking-high-performance-data-analysis-part-2-7c58a3cb7a1f) | ![Article 4](https://miro.medium.com/v2/resize:fit:720/format:webp/1*wbXTzoBWnmGXH7WVkAu4PQ.jpeg) | 24 | This article is part 2 of exploring the Polars library. | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./4-polars-tutorial-part-2.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=4-polars-tutorial-part-2.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/4-polars-tutorial-part-2.ipynb.ipynb) | +| 5 | [Exploring Probability Theory with Rust: A Pioneering Journey](https://levelup.gitconnected.com/exploring-probability-theory-with-rust-a-pioneering-journey-749ce7cdf747) | ![Article 5](https://miro.medium.com/v2/resize:fit:720/0*gSrM4bMl7eBy6jxM) | 38 | This article is a deep dive into probability theory with Rust. | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./5-probability-theory-tutorial.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=5-probability-theory-tutorial.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/5-probability-theory-tutorial.ipynb) | +| 6 | [Rustic Data: Data Visualization with Plotters β€” Part 1](https://towardsdatascience.com/rustic-data-data-visualization-with-plotters-part-1-7a34b6f4a603) | ![Article 6](https://miro.medium.com/v2/resize:fit:720/format:webp/1*SDpfhuT8gB24i2hRlZKS3Q.png) | 20 | A detailed guide on how to transform raw numbers into stunning graphs in Rust | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./6-plotters-tutorial-part-1.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=6-plotters-tutorial-part-1.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/6-plotters-tutorial-part-1.ipynb) | +| 7 | Todo | Todo | Todo | Todo | [![GitHub](https://img.shields.io/badge/launch-Github-181717.svg?logo=github&logoColor=white)](./7-calculus-tutorial-part-1.ipynb) | [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/wiseaidev/rust-data-analysis/main?filepath=7-calculus-tutorial-part-1.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/wiseaidev/rust-data-analysis/blob/main/7-calculus-tutorial-part-1.ipynb) | ## 🀝 Contributing