Python两个数组,得到半径范围内的所有点

时间:2015-06-08 16:07:11

标签: python arrays selection

我有两个数组,比方说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) 似乎不起作用,因为它不会尝试所有排列。

1 个答案:

答案 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),)