Quick Introduction to NumPy

Getting Started with Python Scientific Computing Package (NumPy)


For now, you may consider NumPy as Python lists on steroids. You can use it to create multidimensional arrays and matrices.

The convention is to import it as follows:

import numpy as np
        

As you know, to create an list of numbers between 0 and 9 in Python, you use the following command:

x = range(10)
        

To convert that list into a NumPy array, you can write:

x = np.array(range(10))
        

And to make you life easier, there is a shorthand for the above command:

x = np.arange(10)
        

The N-dimensional Array

So far, we have been creating one dimensional array. However, there are ways to reshape the arrays. The reshape() method when applied on an array, it returns a reshaped version of it without changing the original object.

y = x.reshape(2,5)
        

To reshape the original object itself, then use resize() instead.

The above command create a 2-dimensional array of 2 rows and 5 columns. You can create arrays with as high dimensions as you want. See the command below for a 3*4*5 array.

y = np.arange(3*4*5).reshape(3,4,5)
        

Similar to reshape() and resize(), ravel() converts a multidimensional array into a one-dimensional array, while transpose() turns rows into columns and vice versa.

The mathematical operations '+', '-', '/' and '*' are applied elementwise.

x = np.arange(10)

# To multiply each element of x by 10
y = x + 10

# To multiply each element of x by itself
y = x + x
        

To do a Matrix Multiplication though:

# Create a 3 * 5 Matrix
A = np.arange(15).reshape(3,5)

# Create a 5 * 2 Matrix
B = np.arange(10).reshape(5,2)

# Dot product gives you a 3 * 2 Matrix
y = y = np.dot(A, B)
        

Array Indexing

Just like in lists, you can get parts of an array

For Python lists:

A = range(10)
A[2:5] #=> [2, 3, 4]
        

For NumPy Arrays:

B =  arange(10)
B[2:5] #=> array([2, 3, 4])
        

However, you can set some elements of the array as follows:

B[2:5] = 007
        

But, you cannot do the same to lists!

A[2:5] = 007 #=> TypeError: can only assign an iterable
        

You can also access elements of the array using start, stop and a step:

x = np.arange(10)
x[2:7:2] # array([2, 4, 6])
        

Or access specific elements, let's say elements 1, 5 and 6

x[[1,5,6]] # array([1, 5, 6])
        

Statistical Analysis

For statisticians, here are some methods for analyzing your data

x = np.arange(5) + 1
x.mean() # 3.0
x.max() # 5
x.min() # 1
x.std() # 1.414
        

If you are having an array of elements that are either True or False.

x = np.array([True, False, True, True])

x.all() # Only True if all elements are True
x.any() # Only True if any elements are True
        

R Programmers Feel at Home

If you are used to R Programming Language, you will not miss its way of accessing elements of array that meet a certain condition.

x = np.arange(10)
x[x>4] # array([5, 6, 7, 8, 9])
x[x%2 == 1] # array([1, 3, 5, 7, 9])
        

Finally, there is a repeat() that repeats each element of the array n times.

x = np.array([1, 2])
x.repeat(3) # array([1, 1, 1, 2, 2, 2])
        

That's all folks!




Share on Facebook Share on twitter