擅长:python、mysql、java
<p>对于有序阵列:</p>
<pre><code>def slpitArr(arr, step=3.):
d = np.ediff1d(arr)
n = (d / step).astype(dtype=np.int)
idx = np.flatnonzero(n)
indices = np.repeat(idx, n[idx]) + 1
values = np.concatenate(
[np.linspace(s1, s2, i+1, False)[1:] for s1, s2, i in zip(arr[:-1], arr[1:], n)])
return np.insert(arr, indices, values)
</code></pre>
<p>那么</p>
<pre><code>>>> aa = np.array([10.08, 14.23, 19.47, 21.855, 24.34, 25.02])
>>> print(slpitArr(aa))
[10.08 12.155 14.23 16.85 19.47 21.855 24.34 25.02 ]
>>> print(slpitArr(aa, 2.5))
[10.08 12.155 14.23 15.97666667 17.72333333 19.47
21.855 24.34 25.02 ]
</code></pre>