2014-01-10 2 views
0

일부 데이터 분석을 위해 작은 Python 스크립트를 코딩하려고합니다. 여러 개의 데이터 파일을 가지고 있는데, 각각 하나의 데이터 열이 있고, 각각을 파이썬에서 가져 오는 방법을 알고 있습니다. numpy.loadtxt를 사용하면 다시 ndarray를 얻을 수 있습니다. 하지만이 ndarrays를 연결하는 방법을 알아낼 수는 없습니다. numpy.cocatenate 또는 numpy.append를 먼저 플랫 화하려고 시도해도 항상 오류 메시지가 표시됩니다.여러 데이터 파일에서 1 차원 배열 구성

해결책을 알고 있습니까?

코드 및 데이터 세부 정보를 묻는 것처럼. 여기 내 데이터 파일이 어떻게 생겼는지입니다 :

data = numpy.loadtxt("data_filename") 

배열을 연결하려고 내 코드가 다음과 같습니다 부동 소수점 숫자의

1.4533423 
1.3709900 
1.7832323 
... 

그냥 열, 나는 아무 문제 가져 오기를 사용하여 하나의 파일이 없습니다 이제 (numpy.concatenate 및 numpy.append을 시도한 후 지금 시도하고 numpy.insert) : 내 스크립트를 실행할 때이 파일 이름을 통과하고있어

data = numpy.zeros(0) #creating an empty first array that will be incremented by each file after 
for filename in sys.argv[1:]: 
    temp = numpy.loadtxt(filename) 
    numpy.insert(data, numpy.arange(len(temp), temp)) 

:

./my_script.py ALL_THE_DATAFILES 

는 내가 얻을 오류 메시지는 다음과 같습니다

TypeError: only length-1 arrays can be converted to Python scalars 
+2

질문에 기존의 코드를 추가하십시오 :

대안

이 코드 numpy.s_

편집, numpy.r_이 될 것입니다! – YXD

+2

코드 및 데이터 파일 형식의 작은 샘플을 게시하십시오. – Keeler

답변

4

numpy.concatenate 확실히 올바른 선택이 될 것입니다 - 샘플 데이터 및 샘플 코드 우리가 더 도움이되지 수 해당 오류 메시지가없는 경우.

import sys 
import numpy as np 
filenames = sys.argv[1:] 
arrays = [np.loadtxt(filename) for filename in filenames] 
final_array = np.concatenate(arrays, axis=0) 
+0

고맙습니다 만 축 = 1을 축 = 0으로 변경해야했습니다. – Liam

+0

O.k., 나는 그것을 내 대답에서 조정했다. –

관련 문제