# Importing modules¶

## Python modules¶

When you open a new Jupyter notebook you get direct access only to the core part of Python. This basic functionality can be extended by using additional Python modules. Each module provides tools for some specialized task such as performing more advanced computations, producing graphics and animations, manipulating video and audio files etc.

In order to get access to the content of a module we need to import the
module first. This is done by executing the `import`

statement. For
example, we can import the module `math`

that contains some useful
mathematical functions:

```
import math
```

Once a module has been imported we can use `dir`

function to get the
list of variables and functions defined in the module:

```
print(dir(math))
```

[‘__doc__’, ‘__file__’, ‘__loader__’, ‘__name__’, ‘__package__’, ‘__spec__’, ‘acos’, ‘acosh’, ‘asin’, ‘asinh’, ‘atan’, ‘atan2’, ‘atanh’, ‘ceil’, ‘copysign’, ‘cos’, ‘cosh’, ‘degrees’, ‘e’, ‘erf’, ‘erfc’, ‘exp’, ‘expm1’, ‘fabs’, ‘factorial’, ‘floor’, ‘fmod’, ‘frexp’, ‘fsum’, ‘gamma’, ‘gcd’, ‘hypot’, ‘inf’, ‘isclose’, ‘isfinite’, ‘isinf’, ‘isnan’, ‘ldexp’, ‘lgamma’, ‘log’, ‘log10’, ‘log1p’, ‘log2’, ‘modf’, ‘nan’, ‘pi’, ‘pow’, ‘radians’, ‘sin’, ‘sinh’, ‘sqrt’, ‘tan’, ‘tanh’, ‘trunc’]

More information about a module can be obtained using `help`

function:

```
help(math)
```

Help on module math:

- NAME
math

- MODULE REFERENCE
http://docs.python.org/3.5/library/math

The following documentation is automatically generated from the Python source files. It may be incomplete, incorrect or include features that are considered implementation detail and may vary between Python implementations. When in doubt, consult the module reference at the location listed above.

- DESCRIPTION
This module is always available. It provides access to the mathematical functions defined by the C standard.

- FUNCTIONS
- acos(…)
acos(x)

Return the arc cosine (measured in radians) of x.

- acosh(…)
acosh(x)

Return the inverse hyperbolic cosine of x.

- asin(…)
asin(x)

Return the arc sine (measured in radians) of x.

- asinh(…)
asinh(x)

Return the inverse hyperbolic sine of x.

- atan(…)
atan(x)

Return the arc tangent (measured in radians) of x.

- atan2(…)
atan2(y, x)

Return the arc tangent (measured in radians) of y/x. Unlike atan(y/x), the signs of both x and y are considered.

- atanh(…)
atanh(x)

Return the inverse hyperbolic tangent of x.

- ceil(…)
ceil(x)

Return the ceiling of x as an int. This is the smallest integral value >= x.

- copysign(…)
copysign(x, y)

Return a float with the magnitude (absolute value) of x but the sign of y. On platforms that support signed zeros, copysign(1.0, -0.0) returns -1.0.

- cos(…)
cos(x)

Return the cosine of x (measured in radians).

- cosh(…)
cosh(x)

Return the hyperbolic cosine of x.

- degrees(…)
degrees(x)

Convert angle x from radians to degrees.

- erf(…)
erf(x)

Error function at x.

- erfc(…)
erfc(x)

Complementary error function at x.

- exp(…)
exp(x)

Return e raised to the power of x.

- expm1(…)
expm1(x)

Return exp(x)-1. This function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x.

- fabs(…)
fabs(x)

Return the absolute value of the float x.

- factorial(…)
factorial(x) -> Integral

Find x!. Raise a ValueError if x is negative or non-integral.

- floor(…)
floor(x)

Return the floor of x as an int. This is the largest integral value <= x.

- fmod(…)
fmod(x, y)

Return fmod(x, y), according to platform C. x % y may differ.

- frexp(…)
frexp(x)

Return the mantissa and exponent of x, as pair (m, e). m is a float and e is an int, such that x = m * 2.**e. If x is 0, m and e are both 0. Else 0.5 <= abs(m) < 1.0.

- fsum(…)
fsum(iterable)

Return an accurate floating point sum of values in the iterable. Assumes IEEE-754 floating point arithmetic.

- gamma(…)
gamma(x)

Gamma function at x.

- gcd(…)
gcd(x, y) -> int greatest common divisor of x and y

- hypot(…)
hypot(x, y)

Return the Euclidean distance, sqrt(x*x + y*y).

- isclose(…)
is_close(a, b, *, rel_tol=1e-09, abs_tol=0.0) -> bool

Determine whether two floating point numbers are close in value.

- rel_tol
maximum difference for being considered “close”, relative to the magnitude of the input values

- abs_tol
maximum difference for being considered “close”, regardless of the magnitude of the input values

Return True if a is close in value to b, and False otherwise.

For the values to be considered close, the difference between them must be smaller than at least one of the tolerances.

-inf, inf and NaN behave similarly to the IEEE 754 Standard. That is, NaN is not close to anything, even itself. inf and -inf are only close to themselves.

- isfinite(…)
isfinite(x) -> bool

Return True if x is neither an infinity nor a NaN, and False otherwise.

- isinf(…)
isinf(x) -> bool

Return True if x is a positive or negative infinity, and False otherwise.

- isnan(…)
isnan(x) -> bool

Return True if x is a NaN (not a number), and False otherwise.

- ldexp(…)
ldexp(x, i)

Return x * (2**i).

- lgamma(…)
lgamma(x)

Natural logarithm of absolute value of Gamma function at x.

- log(…)
log(x[, base])

Return the logarithm of x to the given base. If the base not specified, returns the natural logarithm (base e) of x.

- log10(…)
log10(x)

Return the base 10 logarithm of x.

- log1p(…)
log1p(x)

Return the natural logarithm of 1+x (base e). The result is computed in a way which is accurate for x near zero.

- log2(…)
log2(x)

Return the base 2 logarithm of x.

- modf(…)
modf(x)

Return the fractional and integer parts of x. Both results carry the sign of x and are floats.

- pow(…)
pow(x, y)

Return x**y (x to the power of y).

- radians(…)
radians(x)

Convert angle x from degrees to radians.

- sin(…)
sin(x)

Return the sine of x (measured in radians).

- sinh(…)
sinh(x)

Return the hyperbolic sine of x.

- sqrt(…)
sqrt(x)

Return the square root of x.

- tan(…)
tan(x)

Return the tangent of x (measured in radians).

- tanh(…)
tanh(x)

Return the hyperbolic tangent of x.

- trunc(…)
trunc(x:Real) -> Integral

Truncates x to the nearest Integral toward 0. Uses the __trunc__ magic method.

- DATA
e = 2.718281828459045 inf = inf nan = nan pi = 3.141592653589793

- FILE
/Users/bb1/anaconda/envs/py3k/lib/python3.5/lib-dynload/math.cpython-35m-darwin.so

Functions and variables from a module can be acessed by prefixing them
with the module name. For example, the math module contains a variable
`pi`

which gives an approximated value of the number \(\pi\):

```
math.pi
```

3.141592653589793

The `math`

module also contains trigonometric functions: `sin`

,
`cos`

, and `tan`

:

```
math.sin(math.pi/2)
```

1.0

## Referencing module names¶

If you use a function or a variable defined in some module several times it can become tedious having to prefix it by the module name each time. Fortunately there are several ways to make this easier:

**1. Simplify the module name.**¶

For example, we can import the `math`

module using the following
statement:

```
import math as m
```

Now we can access the content of the `math`

module by using the prefix
`m`

:

```
print(m.pi)
```

3.141592653589793

**2. Import only certain functions and variables.**¶

If you are going to use only selected functions and variables from a
module, then you can import these items for direct use. For example, the
following statement imports only the variable `pi`

and the function
`sin`

from the math module:

```
from math import pi, sin
```

The items imported in this way can be used without any prefix:

```
sin(pi/2)
```

1.0

**3. Import everything from a module for direct use.**¶

This method makes all content of the module available without prefixes:

```
from math import *
```

```
cos(pi)
```

-1.0

**Note.** While the third option described above is the simplest it
should be used with caution. Some modules define a lot of functions
and variables, and you may not be aware what all of them are. If you use
`import *`

to get direct access to them all then it can happen that by
accident one of the names you define in your program will be the same
one of the names you imported. In such case your program may fail to
run, or it may run not as intended.