Numerical Python Indexing and Slicing
Numpy Cheat Sheet
NumPy provides a high-performance
Import convention multi-dimensional array object (ndarray), 1D Arrays 2D Arrays Advanced Indexing & Slicing
Indexing
>>> import numpy as np and tools for working with these arrays. Fancy Indexing
1 3 10 0 1 3 10 0 1 3 10 0 1 -2 0 1 -2 0 1 -2 0 >>> i = [Link]([0,2])
>>> a[i]
3 4 2 3 4 2 3 4 2 [1,10]
Creating NumpyCreating
Arrays Numpy Arrays a[2] a[-3] a[0:2]
b[1,2] b[0] b[:,0]
>>> b[[0,2], [1,2]]
Creating From Lists 1D, 2D, 3D Numpy Arrays
Boolean Masking
Slicing >>> b[0:2] Slicing rows.
>>> [Link]([3,4], dtype=float) >>> a = [Link]([1, 3, 10, 0]) >>>m=[Link]([True,False,False,True])
float array from list 1 3 10 0 1 5 5 5 >>> b[0:2,1:3] Slicing rows and >>> a[m]
columns. [1,0]
>>> b = [Link]([[1, -2, 0], a[0:3:2] d[1:4]=5
[3, 4, 2]]) >>> b[:,0:2]=4 Modifying slices.
Creating Constant Numpy Arrays >>> c = [Link]([[['A', 'B'],
['C', 'D'],
>>> [Link]((3,4)) array of zeros
['E', 'F']],
>>> [Link]((2,3,4))
>>> e=[Link]((3,4),7)
array of ones
constant array [['G', 'H'], Array Operations and Ufuncs Linear Algebra
['I', 'J'],
>>> [Link](b,e)
['K', 'L']]]) Operations on Numpy Arrays Relational Operations
Matrix
multiplication
Creating Sequential Arrays a(4,) b(2,3)
Operator Overloading >>> [Link](a,l) a > l
>>> [Link](b) Transpose
axis 0
Arrays of evenly spaced values 1 -2 0 >>> np.greater_equal(a,l) a >= l
1 3 10 0 >>> [Link](a,l) is same as a + l
[Link](10,25,5) step value axis 1 3 4 2 >>> [Link](a,l) a < l >>> [Link](f) Determinant
Vectorized Operations with NumPy
axis 0
axis 1 >>> np.less_equal(a,l) a >= l
l=[Link](0,3,4) # samples B D F >>> [Link](f) Inverse
>>> [Link](a,l) a >= l
A C E L Arithmetic Operations
axis 0
>>> np.not_equal(a,l) a >= l
2
[Link]((3,2)) empty array G I K Transpose
is
ax
>>> [Link](a,l) a + l
f=[Link]((2,2)) random array c(2,3,2) array([1,4,12,3]) Bitwise Operations b b.T
>>> [Link](a,l) a - l
>>> np.bitwise_and(a,l) a & l
Other Array Construction Methods nD Array Properties >>> [Link](a,l) a * l
>>> np.bitwise_or(a,l) a | l
1 3
1 -2 0
>>> [Link](a,l) a / l -2 4
>>> [Link](2) 2 x 2 identity matrix >>> [Link] Number of array elements >>> np.bitwise_xor(a,l) a ^ l
>>> np.floor_divide(a,l) a >/ l
3 4 2
>>> [Link] Number of array dimensions >>> [Link](a) ~a 0 2
>>> [Link]((1,3,5)) diagonal matrix
>>> [Link] Array dimensions >>> [Link](a,l) a % l >>> np.left_shift(a,l) a >< l
>>> d = [Link]() Copy of array >>> [Link] Data type of array elements >>> [Link](a,l) a >* l >>> np.right_shift(a,l) a >> l
Broadcasting & Masking Array Manipulations
Masking Changing shape of an array Splitting an array Tiling Arrays
Two arrays are said to be compatible in a dimension if
>>> [Link](c,(2,2,3)) >>> [Link](b, 2, Splits b into 2 >>> [Link](a,2) Repeats elements
1. they have the same size in that dimension, or C F
>>> mask = a > 3 B D F axis=0) equal arrays
2. one of the arrays has size 1 in that dimension B EI L
A C E L >>> [Link](b,[2]) Splits at 2nd column
>>> a[mask] A H
D K Adding and Removing elements
>>> g = [Link]([[1, -2, 0, 1], G I K G J
[3, 4, 2, 0]]) >>> [Link](b,[1]) Splits at 1st row >>> [Link](b,1,0) Deletes elements
>>> [Link](b)
>>> a + g 1 3 10 0 > 3 Contiguous flattened array >>> [Link](b,1,
[4,4],axis=1)
Inserts elements
>>> [Link]()
1 3 10 0
1 3 10 0 + 1 -2 0
3 4 2
1
0
False False True False
Flatten array to one dimension
>>> a[[Link],:] Joining arrays
>>> [Link](a,l,
axis=0)
Appends elements
1 3 10 0 10 Increase dimension by one
2 1 10 1
>>> [Link](a)
>>> [Link]( Joins sequence of Padding
4 7 12 0 (a,l), axis=0) arrays along axis
Removes single- dimensional entries >>> [Link](b, (1,2), 'constant',
>>>[Link]((a,l)) Stacks column-wise
constant_values=(-1,-2))
Changing the axes of an array >>>[Link]((a,l)) Stacks row-wise Pads with a constant value.
Useful Methods in Numpy More Numpy Methods >>> [Link](b, (1, 1), 'edge')
>>> [Link](c, [0,1], [1, 2]) >>> [Link]([a, l], Joins along new axis.
>>> [Link](a) Unique sorted elements Moves axes from old to new positions axis = 0) Pads with the edge values of the array.
Sum of all elements Maximum element
>>> [Link](a>5, If true a*2, else a*a >>> [Link](c, 1, 2)
>>> [Link](a) >>> [Link]() Interchanges axis-1 and axis-2
a*2, a*a)
>>> [Link]() >>>[Link](b,axis=0) hstack Edge padding
>>> [Link]() >>> [Link](a) Any of the elements
evaluates to True ?
E F
B D F 1. 3. 10. 0. 0. 1. 2. 3.
C D L
K 1 1 -2 0 0
>>> [Link](a) Index of max element >>> [Link](a) All the elements evaluate A C E L
to True ? A BI J 1 1 -2 0 0
>>> [Link](a) Sorted copy of array G I K G H vstack 3 3 4 2 2
2
>>> [Link] 1. 3. 10. 0.
2
NaN constant
is
is
ax
>>> [Link]() Sorts an array in-place
ax
axis 1 axis 1 3 3 4 2 2
>>> [Link] Positive Infinity 0. 1. 2. 3.
>>> [Link](a) Indices that sort array.