numpy.diff — NumPy v1.13 Manual (original) (raw)
numpy.
diff
(a, n=1, axis=-1)[source]¶
Calculate the n-th discrete difference along given axis.
The first difference is given by out[n] = a[n+1] - a[n]
along the given axis, higher differences are calculated by using diffrecursively.
Parameters: | a : array_like Input array n : int, optional The number of times values are differenced. axis : int, optional The axis along which the difference is taken, default is the last axis. |
---|---|
Returns: | diff : ndarray The n-th differences. The shape of the output is the same as _a_except along axis where the dimension is smaller by n. The type of the output is the same as that of the input. |
Notes
For boolean arrays, the preservation of type means that the result will contain False when consecutive elements are the same and_True_ when they differ.
For unsigned integer arrays, the results will also be unsigned. This should not be surprising, as the result is consistent with calculating the difference directly:
u8_arr = np.array([1, 0], dtype=np.uint8) np.diff(u8_arr) array([255], dtype=uint8) u8_arr[1,...] - u8_arr[0,...] array(255, np.uint8)
If this is not desirable, then the array should be cast to a larger integer type first:
i16_arr = u8_arr.astype(np.int16) np.diff(i16_arr) array([-1], dtype=int16)
Examples
x = np.array([1, 2, 4, 7, 0]) np.diff(x) array([ 1, 2, 3, -7]) np.diff(x, n=2) array([ 1, 1, -10])
x = np.array([[1, 3, 6, 10], [0, 5, 6, 8]]) np.diff(x) array([[2, 3, 4], [5, 1, 2]]) np.diff(x, axis=0) array([[-1, 2, 0, -2]])