There are clearly too many guide and tutorial for Python, some of which are quite good. Here is just a personal selection.
-
- The actual guide book is here
-
- "A Byte of Python" is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience.
-
- A curated list of awesome Python frameworks, libraries, software and resources.
-
Comprehensive Python Cheatsheet
- Made by Jure Šorn. The source files are here
-
All Algorithms implemented in Python
- These implementations are for learning purposes. They may be less efficient than the implementations in the Python standard library.
-
Python Standard Library is a very good place to start learning Python:
- There are a lot of useful tools in the standard library.
- A brief tour of the standard library
- The Reference of the Python Standard Library
-
Anaconda distribution is the easiest way to perform Python/R data science and machine learning on all platforms. It can help you create environments with different Python versions, and manage libraries and dependencies in Python.
- It is an easy way to start with Python programming without worrying too much about installing packages all by yourself.
- Getting started with Anaconda and the Anaconda tutorials are good places to start.
-
AstroConda - Conda for astronomers
- AstroConda is a free Conda channel maintained by the Space Telescope Science Institute (STScI)
-
One important reason to use Python in science is that there are already a huge number of great tools prepared to make your life easier.
-
The most useful tool is pip - The Python Package Installer.
- pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other indexes
- This complete reference guide is very useful.
- What Is Pip? A Guide for New Pythonistas
-
pip-tools - A set of tools to keep your pinned Python dependencies fresh
- A set of command line tools to help you keep your pip-based packages fresh, even when you've pinned them.
-
The most basic packages you want to use on daily bases.
-
Scipy ecosystem:
- Numpy - Base N-dimensional array package
- SciPy - Fundamental library for scientific computing
- SymPy - a Python library for symbolic mathematics
- Numpy and Scipy Documentation
- Quickstart tutorial of Numpy
- Scipy Lecture Notes - One document to learn numerics, science, and data with Python
- A Visual Intro to NumPy and Data Representation
-
pandas - Python Data Analysis Library
- pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
- Online document of pandas
-
matplotlib - Comprehensive 2D Plotting
- Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
- Online document of matplotlib; and the matplotlib gallery are very helpful resources to learn.
-
- Bokeh is an interactive visualization library that targets modern web browsers for presentation. Its goal is to provide elegant, concise construction of versatile graphics, and to extend this capability with high-performance interactivity over very large or streaming datasets.
- Bokeh user guide and the reference guide are very useful. The gallery of examples is also a good place to start.
-
Interactive Python computing:
- Jupyter environment
- Project Jupyter exists to develop open-source software, open-standards, and services for interactive computing across dozens of programming languages.
- The Jupyter Notebook App is a server-client application that allows editing and running notebook documents via a web browser.
- IPython - Interactive computing
- IPython provides a rich architecture for interactive computing
- nbviewer - A simple way to share Jupyter notebooks
- Jupyter/IPython Notebook Quick Start Guide
- Jupyter environment
-
scikit-learn - Machine learning in Python
- scikit-learn is a Python module for machine learning built on top of SciPy.
- Online document of scikit-learn and scikit-learn Tutorials
-
scikit-image - Image processing in Python
- scikit-image is a collection of algorithms for image processing.
- Tutorials of skimage and gallery of examples are very useful.
-
astropy - Community Python library for astronomer
- The Astropy Project is a community effort to develop a common core package for Astronomy in Python and foster an ecosystem of interoperable astronomy packages.
- Online document of astropy is here
- Learn.Astropy - Tutorials, documentation, and examples of astropy
-
Scrapy - A fast high-level web crawling & scraping framework for Python
- An open source and collaborative framework for extracting the data you need from websites. In a fast, simple, yet extensible way.