NumPy 函数

NumPy diff() 函数用于计算沿给定轴的第 n 个离散差值。例如,第一个差异由 out[i] = a[i+1] - a[i] 沿给定轴给出,更高的差异由该函数递归计算。

语法

numpy.diff(a, n=1, axis=-1, 
           prepend=<no value>, 
           append=<no value>) 

参数

a必需。 指定输入数组(array_like)。
n可选。 指定值的差异次数。如果为零,则按原样返回输入。
axis可选。 指定取差值的轴,默认为最后一个轴。
prepend、append可选。 指定在执行差异之前要预先或附加到沿轴的值。标量值在轴方向上扩展为长度为 1 的数组,并且沿所有其他轴扩展为输入数组的形状。否则,尺寸和形状必须与轴匹配。

返回值

返回沿轴具有第 n 个离散差异的数组a 的给定轴。输出的形状与 a 相同,但沿轴的尺寸小 n 。

示例:

在下面的示例中,diff()函数用于获取一维数组的第一个差异。

import numpy as np

Arr = np.array([10, 11, 13, 16, 20, 25])

#一阶差分数组
diff1 = np.diff(Arr, 1)
#二阶差分数组
diff11 = np.diff(diff1, 1)

#二阶差分数组
#一步一步
diff2 = np.diff(Arr, 2)

#显示结果
print("Array :", Arr)
print("diff1 :", diff1)
print("diff11 :", diff11)
print("diff2 :", diff2) 

上述代码的输出将是:

Array : [10 11 13 16 20 25]
diff1 : [1 2 3 4 5]
diff11 : [1 1 1 1]
diff2 : [1 1 1 1] 

示例:

diff() 函数可以一起使用如下例所示的给定轴。

import numpy as np

Arr = np.array([[10, 11, 13], 
                [16, 20, 25],
                [31, 38, 46]])

#沿轴的一阶差分=0
diff0 = np.diff(Arr, 1, axis=0)
#沿轴的二阶差=1
diff1 = np.diff(Arr, 1, axis=1)

#显示结果
print("Array :")
print(Arr)
print("\ndiff0 :")
print(diff0)
print("\ndiff1 :")
print(diff1) 

上述代码的输出将是:

Array :
[[10 11 13]
 [16 20 25]
 [31 38 46]]

diff0 :
[[ 6  9 12]
 [15 18 21]]

diff1 :
[[1 2]
 [4 5]
 [7 8]]