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