我有這個代碼在一個巨大的csv文件中查找某個值。這些值爲文件中列2的223.2516,表示爲「row [2]」,列3的值爲58.053,表示爲「row [3]」。我已經設置好了代碼,這樣我就可以在規定的限制內找到任何接近這些值的東西。我知道值223.2516不存在於文件中,所以我正在尋找所有相對接近的東西,就像你在代碼中看到的那樣。最後兩個命令把所有的值的輸出:輸出行號及其中的值
In [54]: [row[2] for row in data if abs(row[2]-223.25)<0.001]
Out[54]:
[223.24945646,
223.25013049,
223.25093125999999,
223.24943973000001,
223.24924296,
223.24958522]
和
In [55]: [row[3] for row in data if abs(row[3]-58.053)<0.001]
Out[55]:
[58.052124569999997,
58.052942659999999,
58.053108100000003,
58.053536250000001,
58.05346918,
58.053109259999999,
58.052188620000003,
58.052528559999999,
58.053201559999998,
58.052009560000002,
58.052036010000002,
58.053623790000003,
58.052450120000003,
58.052405720000003,
58.053431590000002,
58.053709660000003,
58.053117569999998,
58.052511709999997]
,我的問題是,我需要兩個值是相同的行內。我不是在尋找彼此獨立的價值觀。 223值和58.0值必須位於同一行,它們是座標。 有沒有辦法只輸出那些在同一行或至少是那些值,打印每個值所在的行號以及值? 這裏是我的代碼:
import numpy
from matplotlib import *
from pylab import *
data = np.genfromtxt('result.csv',delimiter=',',skip_header=1, dtype=float)
[row[2] for row in data if abs(row[2]-223.25)<0.001]
[row[3] for row in data if abs(row[3]-58.053)<0.001]
可能重複的[遍歷numpy數組](http://stackoverflow.com/questions/6967463/iterating-over-a-numpy-array) – BeetDemGuise