查看列表中的某个或相对接近的值

时间:2014-06-16 16:30:41

标签: python search csv

我有一个csv文件,如下所示:

Type     Mag     ra     dec
3        24.6    223.2  50.833
6        24.5    223.19 50.834

每列超过500个值。我想寻找一个特定的值和任何接近它的东西。 ra的值为223.2516,dec的值为58.0538。转换了这些值,它们在csv数据文件中可能不完全相同。因此,我想要任何与我正在寻找的价值观接近的东西。如果我正在寻找223.2516,那么任何至少有223.25的东西都应该出来,这样我可以比较哪一个是最接近的。

我现在所要做的就是让python进行搜索,即

223.2516 in [row[2] for row in data]

但这只会返回true,这个确切的值可能存在,也可能不存在。就像我说的那样,我希望所有与前5个数字接近的值:" 223.25"。

我尝试在223.25之后添加一个星号

223.2 * in [row[2] for row in data]

但我得到的只是

File "<ipython-input-16-d185380219a6>", line 1
    223.2 * in [row[2] for row in data]
         ^
SyntaxError: invalid syntax

这里是整个代码:

import numpy
from matplotlib import *
from pylab import *

data = np.genfromtxt('result.csv',delimiter=',',skip_header=1, dtype=float)
223.2516 in [row[2] for row in data]

要找到的值显然是通过用户输入,我还没有添加该部分。任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

是的,你想要的是:

arr = r_[1:10]
[a for a in arr if abs(a-5) < 2 ]

例如,这导致[4,5,6]。