use*_*827 3 python numpy pandas
我有以下数组:
[1,1,1,1,1,1,nan,nan,nan,1,1,1,2,2,2,3,3]
Run Code Online (Sandbox Code Playgroud)
我想提取1此数组在nan之后的第一次出现。我尝试了这个:
numpy.argmax(arr > numpy.nan)
Run Code Online (Sandbox Code Playgroud)
np.where(np.isnan(foo))[0][-1] + 1
在之后np.where,0返回包含NaN的元素的索引。然后-1为您提供最后的NaN索引。然后向其添加一个,以找到最后一个NaN之后元素的索引。
在您的示例数组中,它产生的索引为9
然后可以再次使用np.where从索引9开始查找第一个。
总共:
afternan = np.where(np.isnan(foo))[0] [-1] + 1 np.where(foo [afternan:] == 1)[0] [0]
请注意,您的示例似乎是一个列表。我假设您将其转换为一个numpy数组。
| 归档时间: |
|
| 查看次数: |
2780 次 |
| 最近记录: |