python - 查找大于阈值的 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)
解决方案
您可以只访问第一个/最后一个元素
s = np.flatnonzero(test > 0.95)
imin, imax = s[0], s[-1]
推荐阅读
- visual-studio - 尝试重新安装包时的 NuGet 循环依赖
- spring-kafka - Kafka 消费者无法使用 Spring Boot 2.2.0.M4 连接到 localhost:9092 以外的代理
- eclipse - 如何在 JUnit 中为 Eclipse E4 插件项目使用依赖注入
- javascript - 我无法制作一个不确定长度的 javascript 列表,仅在分配某些属性时才显示
- sql - 在 SELECT 中对季度数据进行分组并计算 SUM
- twilio - 为什么 Twilio Flex Worker 属性会自动更改?具体来说, Roles 属性
- mysql - 使用选择信息输出文件
- r - R中混合多个图形的轴标题对齐
- perl - 使用模式拆分文件并使用模式作为文件名
- javascript - 基于 webpacker 的 Rails/Tailwind 项目中的 ES6 与 CommonJS