首页 > 解决方案 > 查找大于阈值的 NumPy 数组的第一个和最后一个元素

问题描述

我需要找到numpy.ndarray高于指定阈值的 a 的第一个和最后一个元素。我找到了以下解决方案,它有效,但看起来有点复杂。有没有更简单/更蟒蛇的方式?

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(1)

test = np.random.uniform(0, 1, 100)
above_threshold = test > 0.95
plt.plot(above_threshold)

indices = np.nonzero(above_threshold)
imin = np.min(indices)
imax = np.max(indices)

print(imin, imax)

标签: pythonarraysnumpy

解决方案


您可以只访问第一个/最后一个元素

s = np.flatnonzero(test > 0.95)
imin, imax = s[0], s[-1]

推荐阅读