我有两个随机数组,X
和Y
。 X表示x坐标,Y
表示y坐标。我想过滤X
,以便我只保留i
的{{1}}指数,其中:
X
我知道如何使用1个数组中的值进行过滤,但由于我需要使用2,所以我不知道该怎么做。我不允许使用任何类型的循环。
答案 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