NumPy cheat sheet.
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.shape
Dimensions (Rows,Columns)
len(array)
Length of Array
array.ndim
Number of Array Dimensions
array.size
Number of Array Elements
array.dtype
Data 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.T
Transpose array
Mathematics Operations
np.add(x,y)
Addition of x + y
np.substract(x,y)
Subtraction of x - y
np.divide(x,y)
x / y
Division
np.multiply(x,y)
x @ y
Multiplication
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 array
see 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]