NumPy | diff method
Start your free 7-days trial now!
Numpy's diff(~)
method computes the difference between each value and its adjacent value in the input array.
Parameters
1. a
| array-like
The input array.
2. n
| int
| optional
The number of differences you want to compute recursively. By default, n=1
. Check out the examples below for clarification.
3. axis
| int
| optional
The axis along which to compute the differences. For 2D arrays, the allowed values are as follows:
Axis | Meaning |
---|---|
0 | Differences will be computed column-wise |
1 | Differences will be computed row-wise |
By default, the axis is equal to the last axis. This means that, for 2D arrays, axis=1
.
4. prepend
| array-like
| optional
Values you wish to prepend to the input array a prior to computing the differences.
Return value
A Numpy array that contains the difference between each value and its adjacent value in the input array.
Examples
Basic usage
a = np.array([1, 3, 8, 15, 30])np.diff(a)
array([ 2, 5, 7, 15])
Recursively computing differences
Suppose we wanted to compute the differences twice recursively, that is, n=2
. The diff(~)
first computes the case when n=1
, and then performs yet another diff(~)
on its output.
The case when n=1
:
a = np.array([1, 3, 8, 15, 30])np.diff(a, n=1)
array([ 2, 5, 7, 15])
The case when n=2
:
a = np.array([1, 3, 8, 15, 30])np.diff(a, n=2)
array([3, 2, 8])
Observe that n=2
is simply applying the diff method on the output of n=1
.
Computing differences for 2D arrays
Consider the following 2D array
a = np.array([[1, 3], [8, 15]])a
array([[ 1, 3], [ 8, 15]])
Row-wise
np.diff(a) # or axis=1
array([[2], [7]])
Column-wise
np.diff(a, axis=0)
array([[ 7, 12]])
Prepending values before computation
a = np.array([3, 8, 15, 30])np.diff(a, prepend=1)
array([ 2, 5, 7, 15])
Here, we've prepended the value 1 to the a
, so essentially we're computing the differences of [1,3,8,15,30]
.