Many helpful array functions are supported in NumPy for analyzing data. We will list some part of them that are common in use. Firstly, the transposing function is another kind of reshaping form that returns a view on the original data array without copying anything:
>>> a = np.array([[0, 5, 10], [20, 25, 30]]) >>> a.reshape(3, 2) array([[0, 5], [10, 20], [25, 30]]) >>> a.T array([[0, 20], [5, 25], [10, 30]])
In general, we have the swapaxes
method that takes a pair of axis numbers and returns a view on the data, without making a copy:
>>> a = np.array([[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]) >>> a.swapaxes(1, 2) array([[[0, 3], [1, 4], [2, 5]], [[6, 9], [7, 10], [8, 11]]])
The transposing function is used to do matrix computations; for example, computing the inner matrix product XT.X
using np.dot
:
>>> a = np.array([[1, 2, 3],[4,5,6]]) >>> np.dot(a.T, a) array([[17, 22, 27], [22, 29, 36], [27, 36, 45]])
Sorting data in an array is also an important demand in processing data. Let's take a look at some sorting functions and their use:
>>> a = np.array ([[6, 34, 1, 6], [0, 5, 2, -1]]) >>> np.sort(a) # sort along the last axis array([[1, 6, 6, 34], [-1, 0, 2, 5]]) >>> np.sort(a, axis=0) # sort along the first axis array([[0, 5, 1, -1], [6, 34, 2, 6]]) >>> b = np.argsort(a) # fancy indexing of sorted array >>> b array([[2, 0, 3, 1], [3, 0, 2, 1]]) >>> a[0][b[0]] array([1, 6, 6, 34]) >>> np.argmax(a) # get index of maximum element 1
See the following table for a listing of array functions:
Function |
Description |
Example |
---|---|---|
|
Trigonometric and hyperbolic functions |
>>> a = np.array([0.,30., 45.]) >>> np.sin(a * np.pi / 180) array([0., 0.5, 0.7071678])
|
|
Rounding elements of an array to the given or nearest number |
>>> a = np.array([0.34, 1.65]) >>> np.round(a) array([0., 2.])
|
|
Computing the exponents and logarithms of an array |
>>> np.exp(np.array([2.25, 3.16])) array([9.4877, 23.5705])
|
|
Set of arithmetic functions on arrays |
>>> a = np.arange(6) >>> x1 = a.reshape(2,3) >>> x2 = np.arange(3) >>> np.multiply(x1, x2) array([[0,1,4],[0,4,10]])
|
|
Perform elementwise comparison: >, >=, <, <=, ==, != |
>>> np.greater(x1, x2) array([[False, False, False], [True, True, True]], dtype = bool)
|