In this lecture, you will learn how to
The core Python package is easy to install but not what you should choose for these lectures.
These lectures require the entire scientific programming ecosystem, which
Hence the best approach for our purposes is to install a Python distribution that contains
The best such distribution is Anaconda.
Anaconda also comes with a great package management system to organize your code libraries.
All of what follows assumes that you adopt this recommendation!
Anaconda supplies a tool called conda to manage and upgrade your Anaconda packages.
One conda command you should execute regularly is the one that updates the whole Anaconda distribution.
As a practice run, please execute the following
conda update anaconda
For more information on conda, type conda help in a terminal.
Jupyter notebooks are one of the many possible ways to interact with Python and the scientific libraries.
They use a browser-based interface to Python with
Because of these features, Jupyter is now a major player in the scientific computing ecosystem.
Here’s an image showing execution of some code (borrowed from here) in a Jupyter notebook
While Jupyter isn’t the only way to code in Python, it’s great for when you wish to
These lectures are designed for executing in Jupyter notebooks.
If you use the second option, you will see something like this
The output tells us the notebook is running at
localhostis the name of the local machine
8888refers to port number 8888 on your computer
Thus, the Jupyter kernel is listening for Python commands on port 8888 of our local machine.
Hopefully, your default browser has also opened up with a web page that looks something like this
What you see here is called the Jupyter dashboard.
If you look at the URL at the top, it should be
localhost:8888 or similar, matching the message above.
Assuming all this has worked OK, you can now click on
New at the top right and select
Python 3 or similar.
Here’s what shows up on our machine:
The notebook displays an active cell, into which you can type Python commands.
Notice that, in the previous figure, the cell is surrounded by a green border.
This means that the cell is in edit mode.
In this mode, whatever you type will appear in the cell with the flashing cursor.
When you’re ready to execute the code in a cell, hit
Shift-Enter instead of the usual
(Note: There are also menu and button options for running code in a cell that you can find by exploring)
The next thing to understand about the Jupyter notebook is that it uses a modal editing system.
This means that the effect of typing at the keyboard depends on which mode you are in.
The two modes are
To switch to
Enteror click in a cell
The modal behavior of the Jupyter notebook is very efficient when you get used to it.
Let’s run a test program.
Here’s an arbitrary program we can use: http://matplotlib.org/3.1.1/gallery/pie_and_polar_charts/polar_bar.html.
On that page, you’ll see the following code
import numpy as np import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['figure.figsize'] = (10,6) # Fixing random state for reproducibility np.random.seed(19680801) # Compute pie slices N = 20 θ = np.linspace(0.0, 2 * np.pi, N, endpoint=False) radii = 10 * np.random.rand(N) width = np.pi / 4 * np.random.rand(N) colors = plt.cm.viridis(radii / 10.) ax = plt.subplot(111, projection='polar') ax.bar(θ, radii, width=width, bottom=0.0, color=colors, alpha=0.5) plt.show()
Don’t worry about the details for now — let’s just run it and see what happens.
The easiest way to run this code is to copy and paste it into a cell in the notebook.
Hopefully you will get a similar plot.
In the previous program, we executed the line
import numpy as np
After this import command, functions in NumPy can be accessed with
np.function_name type syntax.
We can explore these attributes of
np using the
For example, here we type
np.ran and hit Tab
Jupyter offers up the two possible completions,
In this way, the Tab key helps remind you of what’s available and also saves you typing.
Documentation appears in a split window of the browser, like so
Clicking on the top right of the lower split closes the on-line help.
In addition to executing code, the Jupyter notebook allows you to embed text, equations, figures and even videos in the page.
For example, here we enter a mixture of plain text and LaTeX instead of code
Esc to enter command mode and then type
m to indicate that we
are writing Markdown, a mark-up language similar to (but simpler than) LaTeX.
(You can also use your mouse to select
Markdown from the
Code drop-down box just below the list of menu items)
Shift+Enter to produce this
Notebook files are just text files structured in JSON and typically ending with
You can share them in the usual way that you share files — or by using web services such as nbviewer.
The notebooks you see on that site are static html representations.
To run one, download it as an
ipynb file by clicking on the download icon at the top right.
Save it somewhere, navigate to it from the Jupyter dashboard and then run as discussed above.
!conda install quantecon
into a cell.
Alternatively, you can type the following into a terminal
conda install quantecon
More instructions can be found on the library page.
To upgrade to the latest version, which you should do regularly, use
conda upgrade quantecon
!conda install -c conda-forge interpolation
So far we’ve focused on executing Python code entered into a Jupyter notebook cell.
Traditionally most Python code has been run in a different way.
Code is first saved in a text file on a local machine
By convention, these text files have a
We can create an example of such a file as follows:
%%file foo.py print("foobar")
This writes the line
print("foobar") into a file called
foo.py in the local directory.
%%file is an example of a cell magic.
If you come across code saved in a
*.py file, you’ll need to consider the
JupyterLab is an integrated development environment built on top of Jupyter notebooks.
With JupyterLab you can edit and run
*.py files as well as Jupyter notebooks.
To start JupyterLab, search for it in the applications menu or type
jupyter-lab in a terminal.
Now you should be able to open, edit and run the file
foo.py created above by opening it in JupyterLab.
Read the docs or search for a recent YouTube video to find more information.
One can also edit files using a text editor and then run them from within Jupyter notebooks.
A text editor is an application that is specifically designed to work with text files — such as Python programs.
Nothing beats the power and efficiency of a good text editor for working with program text.
A good text editor will provide
Right now, an extremely popular text editor for coding is VS Code.
VS Code is easy to use out of the box and has many high quality extensions.
Alternatively, if you want an outstanding free text editor and don’t mind a seemingly vertical learning curve plus long days of pain and suffering while all your neural pathways are rewired, try Vim.
If Jupyter is still running, quit by using
Ctrl-C at the terminal where
you started it.
Now launch again, but this time using
jupyter notebook --no-browser.
This should start the kernel without launching the browser.
Note also the startup message: It should give you a URL such as
http://localhost:8888 where the notebook is running.
http://localhost:8888) in the address bar at the top.
You should now be able to run a standard Jupyter notebook session.
This is an alternative way to start the notebook that can also be handy.
Git is a version control system — a piece of software used to manage digital projects such as code libraries.
In many cases, the associated collections of files — called repositories — are stored on GitHub.
GitHub is a wonderland of collaborative coding projects.
For example, it hosts many of the scientific libraries we’ll be using later on, such as this one.
Git is the underlying software used to manage these projects.
Git is an extremely powerful tool for distributed collaboration — for example, we use it to share and synchronize all the source files for these lectures.
There are two main flavors of Git
As the 1st task, try
For example, if you’ve installed the command line version, open up a terminal and enter.
git clone https://github.com/QuantEcon/QuantEcon.py
(This is just
git clone in front of the URL for the repository)
As the 2nd task,
For reading on these and other topics, try