## Where do I start with Python?
{:.no_toc}

<nav markdown="1" class="toc-class">
* TOC
{:toc}
</nav>

## The goal

We have to start somewhere. Why not with an overview? 

Questions to [David Rotermund](mailto:davrot@uni-bremen.de)


## [Python​](https://www.python.org/) 

> Python is a programming language that lets you work quickly and integrate systems more effectively.

* There is an offical [Python Tutorial](https://docs.python.org/3/tutorial/)
* YouTube: Socratica Channel [Python Programming Tutorials​](https://www.youtube.com/watch?v=bY6m6_IIN94&list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-)

## [VS code](https://code.visualstudio.com/)

You need an editor for writing Python code. We suggest to use [VS code](https://code.visualstudio.com/) as an editor. It supports many operations systems.

> Code editing. Redefined. Free. Built on open source. Runs everywhere. 

* [Getting Started with Python in VS Code](https://code.visualstudio.com/docs/python/python-tutorial)

## [Numpy](https://numpy.org/doc/stable/index.html)

[What is NumPy?​](https://numpy.org/doc/stable/user/whatisnumpy.html)

> NumPy is the fundamental package for scientific computing in Python. It is a Python library that provides a multidimensional array object, various derived objects (such as masked arrays and matrices), and an assortment of routines for fast operations on arrays, including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, random simulation and much more.

* [NumPy quickstart​](https://numpy.org/doc/stable/user/quickstart.html)
* [NumPy: the absolute basics for beginners​](https://numpy.org/doc/stable/user/absolute_beginners.html)
* [NumPy fundamentals​](https://numpy.org/doc/stable/user/basics.html)
* [NumPy for MATLAB users](https://numpy.org/doc/stable/user/numpy-for-matlab-users.html) (if you are a Matlab user)

## [Matplotlib](https://matplotlib.org/stable/index.html)

> Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.

* [Pyplot tutorial](https://matplotlib.org/stable/tutorials/introductory/pyplot.html)

## [Pandas](https://pandas.pydata.org/)

> pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language.

* [10 minutes to pandas](https://pandas.pydata.org/docs/user_guide/10min.html)

## [SciPy](https://scipy.org/)

> Fundamental algorithms for scientific computing in Python

* [SciPy User Guide](https://docs.scipy.org/doc/scipy/tutorial/index.html)

## [scikit-learn](https://scikit-learn.org/stable/)

> Simple and efficient tools for predictive data analysis

* [Getting Started](https://scikit-learn.org/stable/getting_started.html)
* [User Guide](https://scikit-learn.org/stable/user_guide.html#user-guide)

## [PyTorch](https://pytorch.org/)

> An open source machine learning framework that accelerates the path from research prototyping to production deployment.

* [PyTorch Tutorials](https://pytorch.org/tutorials/)

## [TensorFlow](https://www.tensorflow.org/)
  
> TensorFlow is an end-to-end open source platform for machine learning. It has a comprehensive, flexible ecosystem of tools, libraries and community resources that lets researchers push the state-of-the-art in ML and developers easily build and deploy ML powered applications.​

* [Tutorials](https://www.tensorflow.org/tutorials)

## [OpenCV](https://opencv.org/)

> Open Source Computer Vision

* [OpenCV-Python Tutorials](https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html)