我对numpy.diff函数有一个奇怪的问题:当我将其应用于ndarray时,结果没有意义。有人可以帮忙吗?预先感谢。
In [51]: y[0:20]
Out[51]: array([ -1.74298015, 0.48808889, 3.55711794, 1.60425756,
-2.16230544, -2.72043361, -7.74136894, -8.29849524,
-12.89580717, -6.89705648, -6.20016809, -6.26981107,
-4.94272368, -8.28289977, -11.47886103, -18.14762649,
-12.16312638, -1.5986488 , -2.43279408, -3.47560131])
In [52]: np.diff(y, 10)[0:10]
Out[52]: array([ -955.00831582, 1226.29625361, -1419.52874856, 1391.47262492,
-998.29181321, 363.19533892, 209.27652021, -575.33795591,
812.13066033, -883.15925885])
In [53]: type(y)
Out[53]: numpy.ndarray
答案 0 :(得分:0)
这里有些猜谜游戏,但是diff
对第二个参数的作用是递归地应用自身(请参见此处:https://numpy.org/doc/stable/reference/generated/numpy.diff.html)。所以这个:
y = diff(x, 10)
print(y)
这是它的简短版本
y = x
for _ in range(10):
y = diff(y)
print(y)
也许您期望的是这样的:
y = x[10:] - x[:-10]
print(y)