0% found this document useful (0 votes)
6 views

IPython - Magic Commands

IPython offers magic commands that enhance the standard Python shell, making data analysis easier. There are two types of magic commands: line magics, which start with a %, and cell magics, which start with a %% and can operate on multiple lines. Various built-in magic commands are available for tasks such as changing directories, listing environment variables, and timing code execution.

Uploaded by

viji
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

IPython - Magic Commands

IPython offers magic commands that enhance the standard Python shell, making data analysis easier. There are two types of magic commands: line magics, which start with a %, and cell magics, which start with a %% and can operate on multiple lines. Various built-in magic commands are available for tasks such as changing directories, listing environment variables, and timing code execution.

Uploaded by

viji
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

IPython - Magic Commands

Magic commands or magic functions are one of the important enhancements that IPython offers
compared to the standard Python shell. These magic commands are intended to solve common
problems in data analysis using Python. In fact, they control the behaviour of IPython itself.

Magic commands act as convenient functions where Python syntax is not the most natural one. They are
useful to embed invalid python syntax in their work flow.

Types of Magic Commands

There are two types of magic commands −

Line magics

Cell magics

Line Magics

They are similar to command line calls. They start with % character. Rest of the line is its argument
passed without parentheses or quotes. Line magics can be used as expression and their return value can
be assigned to variable.

Cell Magics

They have %% character prefix. Unlike line magic functions, they can operate on multiple lines below their
call. They can in fact make arbitrary modifications to the input they receive, which need not even be a
valid Python code at all. They receive the whole block as a single string.

To know more about magic functions, the built-in magics and their docstrings, use the magic command.
Information of a specific magic function is obtained by %magicfunction? Command. Let us now describe
some of the built-in line and cell magic commands.

Built-in line magics

%autocall [mode]

This magic function makes a function automatically callable without having to use parentheses. It takes
three possible mode parameters: 0 (off), 1 (smart) is default or 2 (always on).
%automagic

Magic functions are callable without having to type the initial % if set to 1. Without arguments it toggles
on/off. To deactivate, set to 0.

The following example shows a magic function %pwd (displays present working directory) being called
without leading % when %automagic set to 1

%cd

This line magic changes the current directory. This command automatically maintains an internal list of
directories you visit during your IPython session, in the variable _dh. You can also do ‘cd -<tab>’ to see
directory history conveniently.
Usage

The %cd command can be used in the following ways −

%cd <dir> − Changes current working directory to <dir>

%cd.. − Changes current directory to parent directory

%cd − changes to last visited directory.

%dhist

This magic command prints all directories you have visited in current session. Every time %cd command
is used, this list is updated in _dh variable.

%edit

This magic command calls upon the default text editor of current operating system (Notepad for
Windows) for editing a Python script. The script is executed as the editor is closed.

%env
This magic command will list all environment variables. It also reads value of particular variable or set
the value of environment variable.

Usage

The %cd command can be used in the following ways −

%env − Lists all environment variables

%env var − Gets value for var

%env var val − Sets value for var

%gui [GUINAME]

When used without argument this command enables or disables IPython GUI event loop integration. With
GUINAME argument, this magic replaces the default GUI toolkits by the specified one.

Sr.No. Command & Description

%gui wx
1
enable wxPython event loop integration

%gui qt4|qt
2
enable PyQt4 event loop integration

%gui qt5
3
enable PyQt5 event loop integration

4
%gui gtk
enable PyGTK event loop integration

%gui gtk3
5
enable Gtk3 event loop integration

%gui tk
6
enable Tk event loop integration

%gui osx
7
enable Cocoa event loop integration

8 (requires %matplotlib 1.1)

%gui
9
disable all event loop integration

%lsmagic

Displays all magic functions currently available


%matplotlib

This function activates matplotlib interactive support during an IPython session. However, it does not
import matplotlib library. The matplotlib default GUI toolkit is TkAgg. But you can explicitly request a
different GUI backend. You can see a list of the available backends as shown −

In [4]: %matplotlib --list


Available matplotlib backends:
['osx', 'qt4', 'qt5', 'gtk3', 'notebook', 'wx', 'qt', 'nbagg','gtk', 'tk', 'inline']

The IPython session shown here plots a sine wave using qt toolkit −

While using Jupyter notebook, %matplotlib inline directive displays plot output in the browser only.

%notebook

This function converts current IPython history into an IPython notebook file with ipynb extension. The
input cells in previous example are saved as sine.ipynb

%notebook sine.ipynb

%pinfo

This function is similar to object introspection ? character. To obtain information about an object, use the
following command −

%pinfo object

This is synonymous to object? or ?object.


%precision

This magic function restricts a floating point result to specified digits after decimal.

%pwd

This magic function returns the present working directory.

%pylab

This function populates current IPython session with matplotlib, and numpy libraries.

%recall

When executed without any parameter, this function executes previous command.

Note that in %recall n, number in front of it is input cell number. Hence the command in the nth cell is
recalled. You can recall commands in section of cells by using command such as %recall 1-4. Current
input cell is populated with recalled cell and the cursor blinks till the enter key is pressed.
%run

This command runs a Python script from within IPython shell.

%time

This command displays time required by IPython environment to execute a Python expression.

%timeit

This function also displays time required by IPython environment to execute a Python expression. Time
execution of a Python statement or expression uses the timeit module. This function can be used both
as a line and cell magic as explained here −

In line mode you can time a single-line.

In cell mode, the statement in the first line is used as setup code and the body of the cell is
timed. The cell body has access to any variables created in the setup code.

%who

This line magic prints all interactive variables, with some minimal formatting. If any arguments are given,
only variables whose type matches one of these are printed.
IPython Custom Line Magic function

IPython’s core library contains register_line_magic decorator. A user defined function is converted into a
line magic function using this decorator.

You might also like