根据另一个数组中的数据过滤一个数组

时间:2016-10-09 03:12:18

标签: python arrays numpy

我有两个随机数组,XY。 X表示x坐标,Y表示y坐标。我想过滤X,以便我只保留i的{​​{1}}指数,其中:

X

我知道如何使用1个数组中的值进行过滤,但由于我需要使用2,所以我不知道该怎么做。我不允许使用任何类型的循环。

4 个答案:

答案 0 :(得分:0)

这样做:

X_filtered = X[X**2 + Y**2 < 1]

X**2 + Y**2 < 1返回一个布尔数组,只有在等于X的索引处,才能访问此数组上的X返回True

答案 1 :(得分:-1)

for ind,(a,b) in enumerate(zip(x,y)) :
     if (a**2 + b**2) < 1 :
        print ind

答案 2 :(得分:-1)

context

这将过滤X,以便X仅包含符合您的过滤条件的X.

请注意,这确实通过理解使用循环,所以我不太确定如何在没有循环的情况下完成。

答案 3 :(得分:-1)

所以我认为这些数组太大而无法循环?如果您只想稍后保持指数,请尝试Generators

def X_indices_filterd(X, Y):
    for i in enumerate(X):
        if (X[i] ** 2 + Y[i] ** 2 < 1) yield i