거대한 csv 파일에서 특정 값을 찾는이 코드가 있습니다. 이 값은 "row [2]"로 표시된 파일의 2 열의 경우 223.2516이고 "3 행"으로 표시된 3 열의 경우 58.053입니다. 내가 설정 한 한계 내에서 그 값에 가까운 것을 찾을 수 있도록 코드를 설정했습니다. 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]
[중복 검색] (http://stackoverflow.com/questions/6967463/iterating-over-a-numpy-array) – BeetDemGuise