# NumPy diff()

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]`.