MCS 275 Spring 2023
Emily Dumas
Reminders and announcements:
The numpy
module is used for multidimensional typed arrays.
Vectors (1D arrays) and matrices (2D arrays) are the most frequently used.
Last time we explored ways to make arrays and access elements.
Let's continue working in the numpy introduction notebook.
Demo of vector dot product.
Transpose of a matrix.
np.array([5,0,1])==np.array([0,0,0])
evaluates to
np.array([False,True,False])
and numpy arrays do not support boolean coercion so this cannot appear in if
.
To test if two arrays are equal, use one of:
np.all(A==B)
np.array_equal(A,B)
Numpy's "ufuncs" or universal functions are functions that can be applied directly to arrays, automatically acting on each element.
Numpy provides a lot of these. Some built-in Python operations work this way, too.
Usually, ufuncs allow you to avoid explicit iteration over array elements (which is much slower).
If an operation expects arrays of the same dimension, but different dimensions are given, numpy attempts to fix this by broadcasting—using duplication to extend an array to a higher dimension.
E.g. A+1
works when A
is a numpy array. It adds 1
to each
entry. But how?
Broadcasting first turns 1
into an array with the same shape as A
where
each entry is 1
.
Numpy has operations like sum, product, max, min, all, any, that reduce array dimension.
If A
is an array and M
is an array of bool
of the same shape,
then A[M]
refers to a 1D array that lists elements of A
at positions where
M
is True
.
Often used to test or modify elements of an array that meet certain criteria, e.g.
A[A>5]=5
.