The basic IPython client: at the terminal, simply type ipython
:
$ ipython
Python 2.7.4 (default, Apr 19 2013, 18:28:01)
Type "copyright", "credits" or "license" for more information.
IPython 1.0.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: print "hello world"
hello world
When executing code in IPython, all valid Python syntax works as-is, but IPython provides a number of features designed to make the interactive experience more fluid and efficient.
In the notebook, to run a cell of code, hit Shift-Enter
. This executes the cell and puts the cursor in the next cell below, or makes a new one if you are at the end. Alternately, you can use:
Alt-Enter
to force the creation of a new cell unconditionally (useful when inserting new content in the middle of an existing notebook).Control-Enter
executes the cell and keeps the cursor in the same cell, useful for quick experimentation of snippets that you don't need to keep permanently.
In [1]:
print("Hello")
In [2]:
?
In [3]:
import collections
collections.namedtuple?
In [4]:
collections.Counter??
In [5]:
*int*?
An IPython quick reference card:
In [6]:
%quickref
Tab completion, especially for attributes, is a convenient way to explore the structure of any object you’re dealing with. Simply type object_name.<TAB>
to view the object’s attributes. Besides Python objects and keywords, tab completion also works on file and directory names.
In [ ]:
# type tab after the '.' below:
collections.
In [7]:
2+10
Out[7]:
In [8]:
_+10
Out[8]:
In [9]:
10+20;
In [10]:
_
Out[10]:
In [11]:
_10 == Out[10]
Out[11]:
In [12]:
Out
Out[12]:
And the last three have shorthands for convenience:
In [13]:
print('last output :', _)
print('second to last :', __)
print('third to last :', ___)
In [14]:
In[11]
Out[14]:
In [15]:
_i
Out[15]:
In [16]:
_ii
Out[16]:
In [17]:
print('last input :', _i)
print('second to last :', _ii)
print('third to last :', _iii)
In [18]:
%history
In [19]:
!pwd
In [20]:
files = !ls
print("My current directory's files:")
print(files)
In [21]:
!echo $files
In [22]:
!echo {files[0].upper()}
The IPyhton 'magic' functions are a set of commands, invoked by prepending one or two %
signs to their name, that live in a namespace separate from your normal Python variables and provide a more command-like interface. They take flags with --
and arguments without quotes, parentheses or commas. The motivation behind this system is two-fold:
To provide an orthogonal namespace for controlling IPython itself and exposing other system-oriented functionality.
To expose a calling mode that requires minimal verbosity and typing while working interactively. Thus the inspiration taken from the classic Unix shell style for commands.
In [23]:
%magic
Line vs cell magics:
In [24]:
%timeit range(10)
In [25]:
%%timeit
range(10)
range(100)
Line magics can be used even inside code blocks:
In [26]:
for i in range(5):
size = i*100
print('size:',size, end=' ')
%timeit range(size)
Magics can do anything they want with their input, so it doesn't have to be valid Python:
In [27]:
%%bash
echo "My shell is:" $SHELL
echo "User:" $USER
Another interesting cell magic: create any file you want locally from the notebook:
In [28]:
%%file test.txt
This is a test file!
It can contain anything I want...
more...
In [29]:
!cat test.txt
Let's see what other magics are currently defined in the system:
In [30]:
%lsmagic
Out[30]:
Not only can you input normal Python code, you can even paste straight from a Python or IPython shell session:
In [31]:
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
... print(b)
... a, b = b, a+b
In [32]:
In [1]: for i in range(5):
...: print(i)
...:
This imports numpy as np
and matplotlib's plotting routines as plt
, plus setting lots of other stuff for you to work interactivel very easily:
In [41]:
%matplotlib inline
In [42]:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import gcf
In [43]:
x = np.linspace(0, 2*np.pi, 300)
y = np.sin(x**2)
plt.plot(x, y)
plt.title("A little chirp")
f = gcf() # let's keep the figure object around for later...
.ipynb
) on your file systemIf you cd to a Notebook directory and type:
ipython notebook
you will see the Notebooks in that directory in the dashboard
In [44]:
from IPython.nbformat import current
with open('01.1_IPythonIntro.ipynb') as f:
nb = current.read(f, 'json')
In [45]:
nb.worksheets[0].cells[0:5]
Out[45]:
IPython Notebooks can also be exported to .py
files (see "File:Download As" menu item). You can tell the Notebook server to always save these .py
files alongside the .ipynb
files by starting the Notebook as:
ipython notebook --script
You can import Notebooks from the main Dashboard or simply by copying a Notebook into the Notebook directory.