首页 > 解决方案 > 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]

trainPredictist 一个 numpy 数组,look_back一个整数。
我想看看是否有既定的方式或其他人如何做到这一点。

标签: pythonarraysnumpy

解决方案


如果您担心切片的复杂性和/或条件的数量,您可以随时将它们分开:

a = np.array([6,5,4,3,4,5,6])

a_slice = a[2:]

cond_1 = a_slice > 4

res = a_slice[cond_1]

您的示例是否非常简化?对于更复杂的操作,可能有更好的解决方案。


推荐阅读