考虑到你有一个 numpy 数组,你可以使用np.split http://docs.scipy.org/doc/numpy/reference/generated/numpy.split.html,在差异>处进行分割.5
:
import numpy as np
x = np.array([-8.67735471, -8.63727455, -8.59719439, -5.5511022, -5.51102204, -5.47094188,
-5.43086172, -2.4248497, -2.38476954, -2.34468938, -2.30460922, 0.74148297,
0.78156313, 0.82164329, 3.86773547, 3.90781563, 3.94789579, 3.98797595,
7.03406814, 7.0741483])
print np.split(x, np.where(np.diff(x) > .5)[0] + 1)
[array([-8.67735471, -8.63727455, -8.59719439]), array([-5.5511022 , -5.51102204, -5.47094188, -5.43086172]), array([-2.4248497 , -2.38476954, -2.34468938, -2.30460922]), array([ 0.74148297, 0.78156313, 0.82164329]), array([ 3.86773547, 3.90781563, 3.94789579, 3.98797595]), array([ 7.03406814, 7.0741483 ])]
np.where(np.diff(x) > .5)[0]
返回以下元素不满足的索引np.diff(x) > .5)
健康)状况:
In [6]: np.where(np.diff(x) > .5)[0]
Out[6]: array([ 2, 6, 10, 13, 17])
+ 1
每个索引加 1:
In [12]: np.where(np.diff(x) > .5)[0] + 1
Out[12]: array([ 3, 7, 11, 14, 18])
然后路过[ 3, 7, 11, 14, 18]
np.split 将元素拆分为子数组,x[:3], x[3:7],x[7:11] ...