Additional References for Textbook Material
This page provides links to the external web resources that we referred to in the textbook, and that we want to provide up-to-date references for.
The Anaconda Distribution
- Ref. 1: Anaconda Individual Edition: https://www.anaconda.com/products/individual
- Ref. 2: “Anaconda Navigator”: https://docs.continuum.io/anaconda/navigator/
- Ref. 3: “Getting Started with Navigator”: https://docs.continuum.io/anaconda/navigator/getting-started/
Programming Environments and Modules
- Ref. 4: “Command Line and Environment”: PYTHONPATH: https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH
- Ref. 5: “Importing Jupyter Notebooks as Modules”: https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Importing%20Notebooks.html
- Ref. 6: pip Documentation: https://pip.pypa.io/en/stable/
- Ref. 7: PyCharm: https://www.jetbrains.com/pycharm/
- Ref. 8: “Python Packaging Authority”: https://www.pypa.io/en/latest/
- Ref. 9: “Python Package Index”: https://pypi.org/
- Ref. 10: “Python Packaging User Guide”: https://packaging.python.org/
- Ref. 11: “Spyder”: https://www.spyder-ide.org
Python Language Constructs
- Ref. 12: “Built-In Exceptions”: https://docs.python.org/3/library/exceptions.html
- Ref. 13: “Errors and Exceptions”: https://docs.python.org/3/tutorial/errors.html
- Ref. 14: “Functional Programming HOWTO”: https://docs.python.org/3/howto/functional.html
- Ref. 15: “Generators”: https://wiki.python.org/moin/Generators
- Ref. 16: “Operator precedence”: https://docs.python.org/3/reference/expressions.html#operator-precedence
- Ref. 17: “Python Programming/Operators”: https://en.wikibooks.org/wiki/Python_Programming/Operators
- Ref. 18: “string — Common String Operations”: https://docs.python.org/3/library/string.html
- Ref. 19: “Yield Expressions”: https://docs.python.org/3/reference/expressions.html?highlight=yield#yield-expressions
Plotting and Animation
- Ref. 20: “Cartopy Projection List”: https://scitools.org.uk/cartopy/docs/v0.13/crs/projections.html
- Ref. 21: Matplotlib “Animated Line Plot”: https://matplotlib.org/stable/gallery/animation/simple_anim.html
- Ref. 22: Matplotlib “Animation”: https://matplotlib.org/stable/api/animation_api.html
- Ref. 23: Matplotlib Colormaps: https://matplotlib.org/stable/tutorials/colors/colormaps.html
- Ref. 24: “matplotlib.colors”: https://matplotlib.org/stable/api/colors_api.html
- Ref. 25: Matplotlib Documentation: https://matplotlib.org/stable/contents.html
- Ref. 26: Matplotlib “Gallery”: https://matplotlib.org/stable/gallery/index.html
- Ref. 27: Matplotlib “Image Tutorial”: https://matplotlib.org/stable/tutorials/introductory/images.html
- Ref. 28: Matplotlib “Interpolations for imshow”: https://matplotlib.org/stable/gallery/images_contours_and_fields/interpolation_methods.html
- Ref. 29: Matplotlib “Legend Guide”: https://matplotlib.org/stable/tutorials/intermediate/legend_guide.html
- Ref. 30: Matplotlib “Linestyles”: https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html
- Ref. 31: “matplotlib.markers”: https://matplotlib.org/stable/api/markers_api.html
- Ref. 32: “matplotlib.pyplot.axis”: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axis.html
- Ref. 33: “matplotlib.pyplot.legend”: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html
- Ref. 34: “matplotlib.pyplot.plot”: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html
- Ref. 35: Matplotlib “Text Rendering With LaTeX”: https://matplotlib.org/stable/tutorials/text/usetex.html
- Ref. 36: “Pygame Front Page”: https://www.pygame.org/docs/
- Ref. 37: “Pyplot Tutorial”: https://matplotlib.org/stable/tutorials/introductory/pyplot.html
Data and Image Analysis
- Ref. 38: “Masked Arrays”: https://numpy.org/doc/stable/reference/maskedarray.html
- Ref. 39: “NumPy Reference”: https://numpy.org/devdocs/reference/index.html
- Ref. 40: NumPy “Routines”: https://numpy.org/doc/stable/reference/routines.html
- Ref. 41: “numpy.floor”: https://numpy.org/doc/stable/reference/generated/numpy.floor.html
- Ref. 42: “numpy.genfromtxt”: https://numpy.org/doc/stable/reference/generated/numpy.genfromtxt.html
- Ref. 43: “numpy.ufunc.reduce”: https://numpy.org/doc/stable/reference/generated/numpy.ufunc.reduce.html
- Ref. 44: pandas “API Reference”: https://pandas.pydata.org/pandas-docs/stable/reference/index.html
- Ref. 45: pandas in 10 Minutes Guide: https://web.archive.org/web/20200726040111/https://pandas.pydata.org/docs/getting_started/10min.html. This link is to the Internet Archive Wayback Machine version. Unfortunately, the page is no longer available at its original location.
- Ref. 46: “pandas Documentation”: https://pandas.pydata.org/docs/
- Ref. 47: pandas “User Guide”: https://pandas.pydata.org/pandas-docs/stable/user_guide/index.html
- Ref. 48: “pandas.DataFrame.to_excel”: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html
- Ref. 49: “pandas.ExcelWriter”: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.ExcelWriter.html
- Ref. 50: “pandas.read_excel”: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html
- Ref. 51: “Pillow”: https://pillow.readthedocs.io/en/stable/
- Ref. 52: “scikit-image”: https://scikit-image.org/
File Input/Output and File Management
- Ref. 53: “csv — CSV File Reading and Writing”: https://docs.python.org/3/library/csv.html
- Ref. 54: “fnmatch — Unix Filename Pattern Matching”: https://docs.python.org/3/library/fnmatch.html
- Ref. 55: “glob — Unix Style Pathname Pattern Expansion:” https://docs.python.org/3/library/glob.html
- Ref. 56: “Importing data with genfromtxt”: https://numpy.org/doc/stable/user/basics.io.genfromtxt.html
- Ref. 57: “Input and Output”: https://scipy-cookbook.readthedocs.io/items/InputOutput.html
- Ref. 58: “netCDF4”: https://unidata.github.io/netcdf4-python/index.html
- Ref. 59: OpenPyXL “Tutorial”: https://openpyxl.readthedocs.io/en/stable/tutorial.html
- Ref. 60: “os.path — Common Pathname Manipulations”: https://docs.python.org/3/library/os.path.html
- Ref. 61: “pickle — Python Object Serialization”: https://docs.python.org/3/library/pickle.html
Documentation and Programming Style
- Ref. 62: numpydoc Example: https://numpydoc.readthedocs.io/en/latest/example.html
- Ref. 63: numpydoc Style Guide: https://numpydoc.readthedocs.io/en/latest/format.html
- Ref. 64: “PEP 8 — Style Guide for Python Code”: https://www.python.org/dev/peps/pep-0008/
- Ref. 65: “reStructuredText Primer”: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html
- Ref. 66: reStructuredText Quick Reference: https://docutils.sourceforge.io/docs/user/rst/quickref.html
- Ref. 67: “Sphinx: Python Documentation Generator”: https://www.sphinx-doc.org/en/master/
- Ref. 68: “sphinx.ext.autodoc”: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html
- Ref. 69: Sphinx Directives: https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html
Performance and Profiling
- Ref. 70: “line_profiler and kernprof”: https://github.com/pyutils/line_profiler
- Ref. 71: “line-profiler 3.3.0”: https://pypi.org/project/line-profiler/
- Ref. 72: “memory-profiler 0.58.0”: https://pypi.org/project/memory-profiler/
- Ref. 73: Memory-profiler API: https://github.com/pythonprofilers/memory_profiler#api
- Ref. 74: “Numba Documentation”: https://numba.readthedocs.io/en/stable/index.html
- Ref. 75: “The Python Profilers”: https://docs.python.org/3/library/profile.html
- Ref. 76: “timeit — Measure Execution Time of Small Code Snippets”: https://docs.python.org/3/library/timeit.html
Testing Programs
- Ref. 77: “pytest: Helps You Write Better Programs”: https://docs.pytest.org/en/stable/
- Ref. 78: tox: https://tox.readthedocs.io/en/latest/
- Ref. 79: “unittest — Unit Testing Framework”: https://docs.python.org/3/library/unittest.html
Managing Programs
- Ref. 80: Autotools: https://www.gnu.org/software/automake/manual/html_node/index.html
- Ref. 81: conda: https://docs.conda.io/en/latest/
- Ref. 82: “Cookiecutter: Better Project Templates”: https://cookiecutter.readthedocs.io/en/latest/
- Ref. 83: Git Documentation: https://git-scm.com/doc
- Ref. 84: Git GUI Clients: https://git-scm.com/downloads/guis
- Ref. 85: GitHub: https://github.com/
- Ref. 86: GitLab: https://about.gitlab.com/
- Ref. 87: Scientific Python Cookiecutter: https://nsls-ii.github.io/scientific-python-cookiecutter/
Talking With Other Languages
- Ref. 88: “Calling C/C++ Extensions with ctypes”: https://nesi.github.io/perf-training/python-scatter/ctypes
- Ref. 89: “ctypes — A Foreign Function Library for Python”: https://docs.python.org/3/library/ctypes.html
- Ref. 90: “Cython C-Extensions for Python”: https://cython.org/
- Ref. 91: “F2PY Users Guide and Reference Manual”: https://numpy.org/doc/stable/f2py/
- Ref. 92: “Using the GNU Compiler Collection (GCC)”: https://gcc.gnu.org/onlinedocs/gcc/
Miscellaneous
- Ref. 93: “Concentration Gradients and Their Relation to Biased Random Walks”: https://www.mit.edu/~kardar/teaching/projects/chemotaxis(AndreaSchmidt)/gradients.htm
- Ref. 94: “Quicksort”: https://en.wikipedia.org/wiki/Quicksort
- Ref. 95: “Random Generator”: https://numpy.org/doc/stable/reference/random/generator.html
- Ref. 96: “Random sampling (numpy.random)”: https://numpy.org/doc/stable/reference/random/index.html
- Ref. 97: “Sorting”: https://wiki.python.org/moin/HowTo/Sorting