我知道可以通过使用numpy函数numpy.diff()
来获取numpy数组的n阶离散差,但有没有办法对n阶离散和进行相同的操作?
假设我们有一个numpy数组A = np.arange(10)
。第一阶离散和的预期结果是:
array([ 1., 3., 5., 7., 9., 11., 13., 15., 17.])
我可以从中做到:
N = A.shape[0]
B = np.zeros(N-1)
for i in range(N-1):
B[i] = A[i+1] + A[i]
但有没有可用的函数来避免使用for循环?
答案 0 :(得分:3)
A[i+1]
的{{1}}将由for i in range(N-1)
涵盖,同样的A[1:]
同样的迭代意味着A[i]
。所以,基本上你可以将输入数组的这两个版本相加,以便在A[:-1]
中得到一个矢量化输出,就像这样 -
B