For those who are new to python and data analytics, we highly encourage you to go through Prof. Josh Agar’s tutorials for a throrough primer on all the basic concepts.
Here are a list of other tutorials from other websites and sources that describe some of the many important topics on reading, using / running and writing code:
There are several concepts such as file operations, parallel computing, etc. that are heavily used and applied in pyUSID. Most of these concepts are realized using add-ons or packages in python. Here is a compilation of useful tutorials:
The following tutorials go over the basics of python programming:
pyUSID uses the h5py python package to store data in hierarchical data format (HDF5) files. Given that pyUSID is designed to be file-centric, we highly recommend learning more about HDF5 and h5py:
Anaconda is a popular source for python which also comes with a large number of popular scientific python packages that are all correctly compiled and installed in one go. Tutorial for installing Anaconda (Python + all necessary packages)
Two popular methods for installing packages in python are:
included with basic python and standard on Linux and Mac OS
Works great for installing pure python and other simple packages
included with Anaconda installation
Ideally suited for installing packages that have complex dependencies
Here’s a nice tutorial on installing packages using both pip and conda
Following these instructions, open a terminal or the command prompt (Windows) and type:
conda update conda conda update anaconda
Note that you could use the following line instead of or in addition to
conda update anaconda but it can lead to incompatible package versions
conda update --all
Note that this does not update python itself.
These software often do not have any advanced features found in IDEs such as syntax highlighting, real-time code-checking etc. but are simple, and most importantly, open files quickly. Here are some excellent text editors for each class of operating system:
These applications often come with a built-in text editor, code management capabilities, a python console, a terminal, integration with software repositories, etc. that make them ideal for executing and developing code. We only recommend two IDEs at this point: Spyder for users, PyCharm for developers. Both of these work in Linux, Mac OS, and Windows.
These are interactive documents containing live cells with code, equations, visualizations, and narrative text. The interactive nature of the document makes Jupyter notebooks an ideal medium for conveying information and a narrative. These documents are neither text editors nor IDEs and are a separate category.
This section is mainly focused on the other tools that are mainly necessary for those interested in developing their own code and possibly contributing back to pyUSID.
Environments allow users to set up and segregate software sandboxes. For example, one could set up separate environments in python 2 and 3 to ensure that a certain desired code works in both python 2 and 3. For python users, there are two main and popular modes of creating and managing environments - virtual environments and conda environments.
Version control is a tool used for managing changes in code over time. It lifts the burden of having to check for changes line-by-line when multiple people are working on the same project. For example, pyUSID uses Git, the most popular version control software (VCS) for tracking changes etc. By default, git typically only comes with a command-line interface. However, there are several software packages that provide a graphical user interface on top of git. One other major benefit of using an IDE over jupyter or a text editor is that (some) IDEs come with excellent integration with VCS like Git. Here are a collection of useful resources to get you started on git: