python - Numpy:获取索引大于值且条件为真的数组
问题描述
我有以下数组:
a = np.array([6,5,4,3,4,5,6])
现在我想获取所有大于 4 但索引值也大于 2 的元素。我发现这样做的方法如下:
a[2:][a[2:]>4]
有没有更好或更易读的方法来实现这一点?
更新:这是一个简化版本。实际上,索引是通过对几个变量的算术运算完成的,如下所示:
a[len(trainPredict)+(look_back*2)+1:][a[len(trainPredict)+(look_back*2)+1:]>4]
trainPredict
ist 一个 numpy 数组,look_back
一个整数。
我想看看是否有既定的方式或其他人如何做到这一点。
解决方案
如果您担心切片的复杂性和/或条件的数量,您可以随时将它们分开:
a = np.array([6,5,4,3,4,5,6])
a_slice = a[2:]
cond_1 = a_slice > 4
res = a_slice[cond_1]
您的示例是否非常简化?对于更复杂的操作,可能有更好的解决方案。
推荐阅读
- orientdb - 分布式模式不适用于并发调用。| 东方数据库 v3.0.4
- amazon-web-services - 反向代理背后的 ActiveMQ Web 面板 - AmazonMQ
- android - 海拔在 LinearLayout 中不起作用
- mysql - 通过 SSH 在两个远程主机之间导入/导出 mysql
- javascript - 在悬停下一个 div 淡入和鼠标离开 div 这个 div 淡出
- python - 将 cProfile 结果保存到可读的外部文件
- javascript - 选中单选按钮时执行某些操作
- php - PHP - 如何在调用提交后等待写入磁盘?
- r - 带有多个变量的误差线的 R 条形图
- node.js - 网络错误 AWS SES