Skip to content

Commit

Permalink
Sympy doc
Browse files Browse the repository at this point in the history
  • Loading branch information
derailed-dash committed Dec 30, 2023
1 parent 86b0a49 commit 6cf19f1
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 2 deletions.
64 changes: 64 additions & 0 deletions docs/python/sympy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: SymPy
main_img:
name: Jupyter Notebook
link: /assets/images/aoc2017-jn.png
tags:
- name: Jupyter
link: https://jupyter.org/
- name: Jupyter Project Documentation
link: https://docs.jupyter.org/en/latest/index.html
- name: Jupyter Lab Documentation
link: https://jupyterlab.readthedocs.io/en/stable/
- name: Installing Jupyter
link: https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html
- name: Notebook Tips and Tricks
link: https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/
- name: Anaconda
link: https://learning.anaconda.cloud/get-started-with-anaconda?source=install
- name: SciPy Docker Compose
link: https://gist.github.com/derailed-dash/b1d9eb511e336ba837da234518c09842
- name: Google Colab
link: https://colab.research.google.com/
- name: Anaconda Cloud
link: https://nb.anaconda.cloud/
---
## Page Contents

Work in progress...

- [What are Jupyter Notebooks?](#what-are-jupyter-notebooks)
- [A Few Benefits of Notebooks](#a-few-benefits-of-notebooks)
- [Ideal Scenarios for Using Notebooks](#ideal-scenarios-for-using-notebooks)

## What are Jupyter Notebooks?

Integrated Development Environments (IDEs) have been the go-to choice for developers seeking a dedicated space to write, test, and debug their code. However, as data science and machine learning began gaining traction, there was increasing need for a more interactive and data-centric environment. Enter **Jupyter Notebooks**: a web-based application that has redefined the way we interact with code and data, the way we document our code, and the way we share it.

Unlike traditional IDEs, **Jupyter Notebooks allow for code, data, and multimedia to coexist in a shared space**. With its cell-based structure, users can write and execute code in small chunks, making it easier to test ideas and see results in real-time. This attribute alone sets it apart from the linear approach of traditional coding environments, making Jupyter Notebooks a beloved tool among data scientists and analysts.

## A Few Benefits of Notebooks

- **Interactive computing:** Real-time feedback on code execution, facilitating a more iterative and exploratory approach to problem-solving. Code is organised into _cells_. Cells can be executed and re-executed. The output of those cells (such as the values assigned to variables) are available to all subsequent cells in the Notebook. This is useful, since we can run a cell, and then experiment with changes to the cells that come _after_ the cell.
- **Documentation and sharing:** You have the ability to intertwine code, text, and multimedia. You can place markdown or HTML content alongside your code. This greatly improves your ability to document your solutions and share insights. And you can structure your Notebook using chapters.
- **Images and visualisation**: You can include images and visualisations, equations, animations and video, alongside your code.
- **Reproducibility:** Encourages reproducible research by packaging code, data, and narrative into a single document.
- **Extension ecosystem:** A vast array of extensions and libraries are available, enhancing functionality and integration with other tools.
- **Run shell commands:** You can run shell commands from within the Notebook! This is useful for running file system commands, or - for example - to pre-install packages with `pip`.
- **Easy to share:** Since all the code, documentation and output is in a single file, this makes sharing (and collaborating) incredibly easy.
- **Portable:** Jupyter Notebooks are inherently portable, and can be run on a wide variety of platforms.

Here's an example of a Notebook, with chapter structure, and with an introduction written in markdown:

![Notebook Example](/assets/images/notebook-md.png)

And here's an example, where we're dynamically generating an image with code, and showing it after the cell:

![Markdown, Cells, and Graphical Output](/assets/images/notebook-generating-image.png)

## Ideal Scenarios for Using Notebooks

- **Data Analysis and Visualization:** Whether it's cleaning data, performing statistical analysis, or creating visualizations, Jupyter Notebooks provide an interactive environment that fosters insight discovery.
- **Machine Learning and Model Development:** Building and testing models become streamlined with the ability to execute code incrementally and visualize results on the fly.
- **Educational Purposes:** An excellent tool for teaching coding and data science concepts, given its interactive nature and the ability to annotate code with rich text.
- **Collaborative Research:** Facilitates collaborative efforts by allowing multiple users to interact with the notebook and share their findings seamlessly.
4 changes: 2 additions & 2 deletions src/AoC_2023/Dazbo's_Advent_of_Code_2023.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -9873,9 +9873,9 @@
"toc_visible": true
},
"kernelspec": {
"display_name": "ana-aoc",
"display_name": "aca_aoc",
"language": "python",
"name": "python3"
"name": "aca_aoc"
},
"language_info": {
"codemirror_mode": {
Expand Down

0 comments on commit 6cf19f1

Please sign in to comment.