Python is a free and open source, interpreted, general purpose programming language. With an approachable syntax, Python is an easy language to learn for both beginners as well as experienced programmers. The language is also popular within the scientific community, with libraries written specifically to assist in the task of data analysis of large and complex scientific datasets.
Python 2 sunset notice: Listed resources focus on Python 3. Python 2 will sunset in 2020, meaning Python 2 will no longer be updated, including security updates. It is STRONGLY advised you install Python 3.
Installation notice: NOAA staff must contact their IT department regarding installation of Python. NOAA Central Library is not responsible for the installation of Python on your workstation or laptop machine.
PEP 8 Style Guide for Python Code: Python’s official style guide.
Official Python documentation: Entry point for official Python documentation. It is possible to filter according to specific Python version (e.g. 3.73).
PyVideo.org: An index of Python related videos. Search by topic.
PyAOS: Website focused on providing Python resources for atmospheric and oceanic scientists (AOS), both those new to and experienced in the language.
Pangeo: A community promoting open, reproducible, and scalable science.
Automate the Boring Stuff with Python: Python programming guide for beginners.
Corey Schafer’s YouTube channel: Useful resource for beginners, with short length videos covering many aspects of Python. Schafer also has recorded longer, multi part videos for Python libraries and/or apps like Matplotlib and Flask.
MetPy Mondays!: Unidata's Program Center weekly series on using Python in the atmospheric and related sciences.
Unidata's Python Training: One-stop site for for learning how to use Python for earth science education education and research for any experience level.
Python for Atmosphere and Ocean Scientists Data Carpentry lesson: Lesson covers data analysis of climate models, including plotting of data.
Wiley Online EBook Collection: Collection contains Python related EBooks, and other programming, related content. Library patrons stationed in Silver Spring and other network libraries are able to use the collection.
NOTE: For NOAA staff (federal employees and contractors) that are having access issues, please complete Report an Access Issue Google Form.
NOAA Library Catalog (NOAALINC): Python books can be found through our library catalog. As books on Python on regularly checked out, materials can also be requested through NOAA Central Library's Inter Library Loan service @ firstname.lastname@example.org.
NOAA employees and approved contractors have access to Python resources through the Commerce Learning Center (CLC). Some examples include, "Python Applications", "Python Concurrent Programming: Multiprocessing in Programming", and "Python Concurrent Programming: Asynchronous Executions in Python".
Federal employees are automatically enrolled in CLC; however, contractors are not routinely provided access to the CLC unless required per policy guidelines. More information can be found here.
There are several options for options for downloading and installing Python. Some of the most popular ones are listed below:
Anaconda Distribution: The Anaconda distribution of Python is recommended for data science and scientific computing. Package management is streamlined through Anaconda’s package management system conda. Anaconda not only includes Python, but Spyder (an integrated development environment, or IDE, for Python), Jupyter Notebook capability, pre-installed Python packages, and more. More detailed installation instructions can be found on Anaconda's site.
Python Software Foundation: Download Python directly from Python Software Foundation's site.
Python has a wide-array of libraries that can be installed. You can find Python packages on PyPI, the Python Package Index, and/or on Anaconda Cloud. Listed below are a sample of libraries that are often used in scientific programming (there are a plenty of other libraries not listed!), including links to examples and guides.