NumPy diff() (With Examples) Skip to main content

NumPy diff()

In this tutorial, you will learn about the numpy.diff() method with the help of examples.

The diff() function calculates the difference of consecutive elements along a specified axis of an array.

Example

import numpy as np

array1 = np.array([1, 3, 6, 10, 15])

# use diff() to calculate difference of consecutive elements of array1 result = np.diff(array1)
print(result) # Output: [2 3 4 5]

diff() Syntax

The syntax of diff() is:

numpy.diff(array, n=1, axis=-1)

diff() Arguments

The diff() function takes following arguments:

  • array - the input array
  • n (optional) - the number of times the differences are taken consecutively
  • axis (optional) - the axis along which the differences are calculated

diff() Return Value

The diff() function returns an array that contains the differences of consecutive elements along the specified axis.


Example 1: diff() With 2-D Array

The axis argument defines how we can find the difference of consecutive elements in a 2-D array.

  • If axis = 0, the difference of consecutive elements is calculated column-wise.
  • If axis = 1, the difference of consecutive elements is calculated row-wise.
import numpy as np

array1 = np.array([[1, 3, 6],
                                [2, 4, 8]])

# compute the differences between consecutive elements column-wise (along axis 0) result1 = np.diff(array1, axis=0)
print("Differences along axis 0 (column-wise):") print(result1)
# compute the differences between consecutive elements row-wise (along axis 1) result2 = np.diff(array1, axis=1)
print("\nDifferences along axis 1 (row-wise):") print(result2)

Output

Differences along axis 0 (column-wise):
[[1 1 2]]

Differences along axis 1 (row-wise):
[[2 3]
 [2 4]]

Here,

  • The resulting array result1 contains the differences of consecutive elements for each column of array1.
  • The resulting array result2 contains the differences of consecutive elements for each row of array1.

Example 2: Use of n Argument in diff()

The n argument in diff() allows us to specify the number of times the differences are taken consecutively.

By default, n is set to 1, which calculates the differences between consecutive elements once.

import numpy as np

# create a 1D NumPy array
array1 = np.array([1, 4, 9, 16, 25])

# compute the first-order differences by setting n=1 result1 = np.diff(array1, n=1)
print("First-order differences:") print(result1)
# compute the second-order differences by setting n=2 result2 = np.diff(array1, n=2)
print("\nSecond-order differences:") print(result2)

Output

First-order differences:
[3 5 7 9]

Second-order differences:
[2 2 2]

In this example,

  • The resulting array result1 contains the differences between consecutive elements of array1. It is calculated as [4-1, 9-4, 16-9, 25-16], resulting in [3, 5, 7, 9].
  • The resulting array result2 contains the differences between consecutive elements of result1. It is calculated as [5-3, 7-5, 9-7], resulting in [2, 2, 2].