Matlab代码的简单Numpy翻译是这样的:
import numpy as npv = np.array([1., 1., 1., np.nan, 1., 1., 1., 1., np.nan, 1.])n = np.isnan(v)a = ~nc = np.cumsum(a)d = np.diff(np.concatenate(([0.], c[n])))v[n] = -dnp.cumsum(v)
执行此代码将返回结果
array([ 1., 2., 3., 0., 1., 2., 3., 4., 0.,1.])。此解决方案仅会与原始解决方案一样有效,但是如果它不足以满足您的目的,它可能会帮助您提供更好的解决方案。



