我有两个数组,比方说x和y包含几千个数据点。 绘制散点图可以很好地表示它们。现在我想选择一定范围内的所有点。例如r = 10
我试过这个,但它不起作用,因为它不是网格。
ApplicationStarted
这与nxn数组不同,x = [1,2,4,5,7,8,....]
y = [-1,4,8,-1,11,17,....]
RAdeccircle = x**2+y**2
r = 10
regstars = np.where(RAdeccircle < r**2)
似乎不起作用,因为它不会尝试所有排列。
答案 0 :(得分:5)
您只能在numpy数组上执行**
,但在您的情况下,您正在使用列表,并且在列表上使用**
会返回错误,因此您首先需要将列表转换为numpy数组使用np.array()
import numpy as np
x = np.array([1,2,4,5,7,8])
y = np.array([-1,4,8,-1,11,17])
RAdeccircle = x**2+y**2
print RAdeccircle
r = 10
regstars = np.where(RAdeccircle < r**2)
print regstars
>>> [ 2 20 80 26 170 353]
>>> (array([0, 1, 2, 3], dtype=int64),)