# Modules and numpy

## Contents

# Modules and numpy#

The basic Python language doesn’t contain many more commands for doing maths. If we want more complex commands like trigonometric functions, we have to `import`

a * module* which offers those commands. There are a number of modules that provide mathematical functions. The one you will most commonly use is

`numpy`

(which stands for numerical Python). There are several ways of importing modules. For now, we’ll import `numpy`

in the following conventional way:```
import numpy as np
```

The previous cell told Python to make the `numpy`

module available, and call it `np`

. We could call it anything other than `np`

, but `np`

is a conventional name for `numpy`

.
We can now use the functions provided by `numpy`

like so:

```
np.cos(0)
```

```
1.0
```

Note that `numpy`

works in radians. You can get the value of pi using `np.pi`

, so we can compute:

```
np.sin(np.pi / 6)
```

```
0.49999999999999994
```

The output of the last cell looks a bit funny - it should be 0.5 exactly. When dealing with floating point numbers, there will always be some rounding errors in the computations, and you shouldn’t rely on getting exact values. You will see more on this in further notebooks.

When we write `np.cos(0)`

, we are “*calling the function np.cos with argument 0*”. We will later see how to write and call our own functions.

`Numpy`

contains many other useful mathematical functions, listed here. It’s not worth trying to remember all of them; just remember that this list exists!

We could have also imported `numpy`

using `import numpy`

. We would then use the functions in it by writing, for example, `numpy.cos(0)`

.

## A Warning#

You will occasionally see material import `numpy`

or other modules using the following format:

```
from numpy import *
# now we can use the functions from numpy without putting np. before them
cos(pi)
```

```
-1.0
```

* Do not do this.* While it might seem innocuous and indeed useful at first, it is actually considered dangerous and bad practice. If you do want to be able to use things from

`numpy`

without putting `np.`

before them, you should import them like this:```
from numpy import cos, pi
cos(pi)
```

```
-1.0
```

## Other modules#

There are many other modules available in Python - far too many to list - but you can import any of them in the same way as shown above provided they are installed on your computer.

One example that we have already seen is `mobilechelonian`

. We import this using the final syntax shown above:

```
from mobilechelonian import Turtle
donna = Turtle()
donna.forward(50)
donna.left(720)
```