>>> jj = [1,3,9,4,5,6,1,2,4,1,7,9,0,4,1,9]
>>> np.diff(jj)
[ 2 6 -5 1 1 -5 1 2 -3 6 2 -9 4 -3 8]np.diff给出了连续数字之间的差异。我在寻找每一个有3值差距的元素之间的差异。
输入:1,3,9,4,5,6,1,2,4,1,7,9,E 210,4,1,E 1119E 212
粗体值之间的差异输出: 3,-3,0,-1,-9
发布于 2022-10-13 17:00:03
首先,您可以将slicing与step : 3结合使用。然后使用numpy.diff。你可以读
import numpy as np
a = np.array([1,3,9,4,5,6,1,2,4,1,7,9,0,4,1,9])
b = np.diff(a[::3])
print(b)输出:array([ 3, -3, 0, -1, 9])
发布于 2022-10-13 16:59:55
最直截了当的方法是把三分之一的数字切成一片:
>>> import numpy as np
>>> arr = np.array([1,3,9,4,5,6,1,2,4,1,7,9,0,4,1,9])
>>> np.diff(arr[::3])
array([ 3, -3, 0, -1, 9])注意,如果您使用numpy.ndarray,那么这是相当节省空间的,因为arr[::3]创建了一个视图。
发布于 2022-10-13 17:00:45
您仍然可以使用np.diff,只传递一个特定数组,而不是整个数组,如下所示:
np.diff(jj[::3])https://stackoverflow.com/questions/74059315
复制相似问题