2014-05-20 10 views
2

두 개의 열과 n 개의 행이있는 텍스트 파일이 있습니다. 일반적으로 나는 두 개의 분리 된 벡터를 사용하여 x,y=np.loadtxt('data',usecols=(0,1),unpack=True)을 사용하지만, 나는 array=[[a,1],[b,2],[c,3]...]이라는 배열의 배열로하고 싶습니다. 모든 문자는 x- 벡터와 y- 벡터의 숫자에 해당하므로 array[0,2]=b과 같은 것을 물어볼 수 있습니다. 나는 정의하려고 시도했다 array[0,:]=x 그러나 나는 성공하지 못했다. 이 작업을 수행하는 간단한 방법은 무엇입니까?Python - 파일의 열에서 배열 만들기

또한 특정 y 값에 대해 각각의 x 값을 얻고 싶습니다. 나는

x_value=np.argwhere(array[:,1]==3) 

과 노력 그리고 나는 x_value가 열 1에서 3에 해당하기 때문에 c를 것으로 기대하고 있습니다하지만이 중 하나가 작동하지 않습니다.

답변

1

loadtxt에서 얻을 수있는 배열의 압축을 풀면됩니다. 수행

arr = np.loadtxt('data', usecols=(0,1)) 

파일이 포함 된 경우 :

0 1 
2 3 
4 5 

arr처럼 될 것입니다 :이 배열에 색인을 먼저 행을 지정할 필요가

주 (그리고 0에서 시작하는 인덱스) :

arr[1,0] == 2 # True! 
,210

당신과 함께주고 y 값에 해당하는 x 값을 찾을 수 있습니다 y_val 고유 인 경우 x_vals는 하나의 값을가집니다하지만

x_vals = arr[:,0][arr[:,1]==y_val] 

인덱싱은 배열을 반환합니다. y_val에 대해 하나의 일치 항목 만 미리 알면 색인 생성이 끝날 때 [0]을 붙이면 첫 번째 결과가 표시됩니다.