# The numpy array

The main object of the numpy module is the multidimensional array - these are similar to the lists that are introduced on the intermediate python course however, the contents of a numpy array must be all of the same type. Any given numpy array can be be of a number of dimensions - dimensions in numpy speak are called axes. Before you try using numpy, make sure you have imported it - `import numpy`

## Array creation

An array can be created using a standard python list:

``````a = numpy.array([1, 4, 5, 8], float)
``````

Notice how we use numpy’s array function and also specify the object type (in this case float). By typing `a` straight into the command line, you will now be presented with:

``````>> a
>> array([ 1.,  4.,  5.,  8.])
``````

You can also use the `print()` function:

``````>> print(a)
>> [1.,  4.,  5.,  8.]
``````

It isn’t necessary to create arrays only by passing in lists - you can use the numpy.arange() function:

``````x=numpy.arange(6)
``````

or

``````x=numpy.arange(1,10,1)
``````

Notice the output from this second example - is this what you expected? If not, have a look at the documention for numpy.arange() (see here if you can’t remember how).

Two other useful functions for array creation include numpy.ones() and numpy.zeros():

For example, a 1-dimensional array of ones can be created using:

``````b = numpy.ones(6)
``````

…. and of zeros using:

``````b = numpy.zeros(6)
``````

## Multiple dimensions (or axes)

So far we have just dealt with single dimensions, however numpy can hold multiple. Using the same functions as introduced above, we can create a 2-dimensional 2 x 5 array of ones using:

``````a_2d=numpy.ones((2,5))
``````

Print the variable `a_2d` out to the command line - are the dimensions as you expected? The saying across the hall and up the stairs doesn’t hold here, with the first dimension specified being associated with the rows and the second dimension being associated with the columns of the new array. Try not to forget this - be sure that it will crop up again in the future!

## Creating arrays of random numbers

Numpy also offers a function to quickly create arrays of random numbers - the functions to do this are held within a sub-routine of numpy called random. To create a 1-dimensional array of random values:

``````rand=numpy.random.random(7)
``````

A 2-dimensional array can be created as before:

``````rand_2d=numpy.random.random((4,4))
``````

You will notice that the values are between 0 and 1. Have a look at the documentation for creating random arrays between different limits.

# Exercises

• Create a 1-dimensional array of ones
• Create a 2-dimensional array of random numbers
• Create a 10 x 10 2-dimensional numpy array of ones of float type
• Create a 10 x 10 2-dimensional numpy array of zeros of integer type

… solutions can be found here