如果我有一个数组
a=array([nan, nan, 2., 3., 0., nan, 5., nan, 6., 7., 8., nan])
如何快速修剪到
array([2., 3., 0., nan, 5., nan, 6., 7., 8.])
注意中间的np.nan
值保持不变。
试试这个,刚刚看到@ Joe Ferndz已经回答了
#series
a=pd.Series([np.nan, np.nan, 2., 3., 0., np.nan, 5., np.nan, 6., 7., 8., np.nan])
# Find out the first and last valid index and filter
a.loc[a.first_valid_index():a.last_valid_index()]
解决方案很长,但它有效:
newarray = []
start, end = 0, len(a)
for x in range(len(a)):
if a[x] > 0 and start == 0:
start = x
break
for x in range(len(a)):
if a[-x] > 0 and end == len(a):
end = -x + 1
break
print(a[start:end])