NumPy cheat sheet.

Kevin Msanta Gichia
4 min readMay 10, 2017

--

Basics

One of the most commonly used functions of NumPy are NumPy arrays: The essential difference between lists and NumPy arrays is functionality and speed. lists give you basic operation, but NumPy adds FFTs, convolutions, fast searching, basic statistics, linear algebra, histograms, etc.
The most important difference for data science is the ability to do element-wise calculations with NumPy arrays.

axis 0 always refers to row
axis 1 always refers to column

np.array([1,2,3])1d array

np.array([(1,2,3),(4,5,6)])2d array

np.arange(start,stop,step)range array

Placeholders

np.linspace(0,2,9)Add evenly spaced values between interval to array of length

np.zeros((1,2))Create and array filled with zeros

np.ones((1,2))Creates an array filled with ones

np.random.random((5,5))Creates random array

np.empty((2,2))Creates an empty array

Examples

# 1 dimensional
x = np.array([1,2,3])
# 2 dimensional
y = np.array([(1,2,3),(4,5,6)])
x = np.arange(3)
>>> array([0, 1, 2])
y = np.arange(3.0)
>>> array([ 0., 1., 2.])
x = np.arange(3,7)
>>> array([3, 4, 5, 6])
y = np.arange(3,7,2)
>>> array([3, 5])

Array

Array Properties

array.shapeDimensions (Rows,Columns)

len(array)Length of Array

array.ndimNumber of Array Dimensions

array.sizeNumber of Array Elements

array.dtypeData Type

array.astype(type)Converts to Data Type

type(array)Type of Array

Copying/Sorting

np.copy(array)Creates copy of array

other = array.copy()Creates deep copy of array

array.sort()Sorts an array

array.sort(axis=0)Sorts axis of array

Examples

# Sort sorts in ascending order
y = np.array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1])
y.sort()
print(y)
>>> [ 1 2 3 4 5 6 7 8 9 10]

Array Manipulation Routines

Adding or Removing Elements

np.append(a,b)Append items to array

np.insert(array, 1, 2, axis)Insert items into array at axis 0 or 1

array.resize((2,4))Resize array to shape(2,4)

np.delete(array,1,axis)Deletes items from array

Example

# Append items to array
a = np.array([(1, 2, 3),(4, 5, 6)])
b = np.append(a, [(7, 8, 9)])
print(b)
>>> [1 2 3 4 5 6 7 8 9]
# Remove index 2 from previous array
print(np.delete(b, 2))
>>> [1 2 4 5 6 7 8 9]

Combining Arrays

np.concatenate((a,b),axis=0)Concatenates 2 arrays, adds to end

np.vstack((a,b))Stack array row-wise

np.hstack((a,b))Stack array column wise

Example

a = np.array([1, 3, 5])
b = np.array([2, 4, 6])
# Stack two arrays row-wise
print(np.vstack((a,b)))
>>> [[1 3 5]
[2 4 6]]
# Stack two arrays column-wise
print(np.hstack((a,b)))
>>> [1 3 5 2 4 6]

Splitting Arrays

numpy.split()

np.array_split(array,3)Split an array in sub-arrays of (nearly) identical size

numpy.hsplit(array, 3)Split the array horizontally at 3rd index

Example

# Split array into groups of ~3
a = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(np.array_split(a, 3))
>>> [array([1, 2, 3]), array([4, 5, 6]), array([7, 8])]

More

other = ndarray.flatten()Flattens a 2d array to 1d

array = np.transpose(other) / array.TTranspose array

Mathematics Operations

np.add(x,y)Addition of x + y

np.substract(x,y)Subtraction of x - y

np.divide(x,y)
x / yDivision

np.multiply(x,y)
x @ yMultiplication

np.sqrt(x)SquareRoot

np.sin(x)Element-wise sine

np.cos(x)Element-wise cosine

np.log(x)Element-wise natural log

np.dot(x,y)Dot product

Remember: NumPy array operations work element-wise.

Example

# If a 1d array is added to a 2d array (or the other way), NumPy
# chooses the array with smaller dimension and adds it to the one
# with bigger dimension
a = np.array([1, 2, 3])
b = np.array([(1, 2, 3), (4, 5, 6)])
print(np.add(a, b))
>>> [[2 4 6]
[5 7 9]]

Comparison

==Equal

!=Not equal

<Smaller than

>Greater than

<=Smaller than or equal

>=Greater than or equal

np.array_equal(x,y)Array-wise comparison

# Using comparison operators will create boolean NumPy arrays
z = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
c = z < 6
print(c)
>>> [ True True True True True False False False False False]

Basic Statistics

np.mean(array)Mean

np.median(array)Median

array.corrcoef()Correlation Coefficient

array.std(array)Standard Deviation

Example

# Statistics of an array
a = np.array([1, 1, 2, 5, 8, 10, 11, 12])
# Standard deviation
print(np.std(a))
>>> 4.2938910093294167
# Median
print(np.median(a))
>>> 6.5

More

array.sum()Array-wise sum

array.min()Array-wise minimum value

array.max(axis=0)Maximum value of specified axis

array.cumsum(axis=0)Cumulative sum of specified axis

Slicing and Subsetting

array[i]1d array at index i

array[i,j]2d array at index[i][j]

array[i<4]Boolean Indexing

array[0:3]Select items of index 0, 1 and 2

array[0:2,1]Select items of rows 0 and 1 at column 1

array[:1]Select items of row 0 (equals array[0:1, :])

array[1:2, :]Select items of row 1

array[ : :-1]Reverses arraysee above

Examples

b = np.array([(1, 2, 3), (4, 5, 6)])# The index *before* the comma refers to *rows*,
# the index *after* the comma refers to *columns*
print(b[0:1, 2])
>>> [3]
print(b[:len(b), 2])
>>> [3 6]
print(b[0, :])
>>> [1 2 3]
print(b[0, 2:])
>>> [3]
print(b[:, 0])
>>> [1 4]
c = np.array([(1, 2, 3), (4, 5, 6)])
d = c[1:2, 0:2]
print(d)
>>> [[4 5]]

Tricks

This is a list of examples.

# Index trick when working with two np-arrays
a = np.array([1,2,3,6,1,4,1])
b = np.array([5,6,7,8,3,1,2])
# Only saves a at index where b == 1
other_a = a[b == 1]
#Saves every spot in a except at index where b != 1
other_other_a = a[b != 1]
x = np.array([4,6,8,1,2,6,9])
y = x > 5
print(x[y])
>>> [6 8 6 9]
# Even shorter
x = np.array([1, 2, 3, 4, 4, 35, 212, 5, 5, 6])
print(x[x < 5])
>>> [1 2 3 4 4]

--

--