을 np.loadtxt 사용 .DAT 나는이 텍스트 파일이에서 : 나는 3 열을 추출 할추출 열 파이썬
www2.geog.ucl.ac.uk/~plewis/geogg122/python/delnorte.dat 및 4.
내가 np.loadtxt 사용하고- 오류지고 : 나는 2005 년에만 관심이
ValueError: invalid literal for float(): 2000-01-01
을 어떻게 모두 열을 추출 할 수 있습니까?
을 np.loadtxt 사용 .DAT 나는이 텍스트 파일이에서 : 나는 3 열을 추출 할추출 열 파이썬
www2.geog.ucl.ac.uk/~plewis/geogg122/python/delnorte.dat 및 4.
내가 np.loadtxt 사용하고- 오류지고 : 나는 2005 년에만 관심이
ValueError: invalid literal for float(): 2000-01-01
을 어떻게 모두 열을 추출 할 수 있습니까?
loadtxt
으로 특정 열에 대한 사용자 지정 변환 기능을 제공 할 수 있습니다.
당신은 내가 -
날짜를 분할하고 int
에 첫 부분을 변환하는 lambda
α- 함수를 사용하는 한 해에만 관심이 있기 때문에 : 당신이 logical indexing을 사용할 수 있습니다 2005
data = np.loadtxt('delnorte.dat',
usecols=(2,3),
converters={2: lambda s: int(s.split('-')[0])},
skiprows=27)
array([[ 2000., 190.],
[ 2000., 170.],
[ 2000., 160.],
...,
[ 2010., 185.],
[ 2010., 175.],
[ 2010., 165.]])
이 년 후 필터링하려면 NumPy와에 : 나는 올해 추출하는 방법을
data_2005 = data[data[:,0] == 2005]
array([[ 2005., 210.],
[ 2005., 190.],
[ 2005., 190.],
[ 2005., 200.],
....])
이 증조 (즉, 2005)과을 방금 만든 배열에서 해당 값을? 감사. –
@DavidColpey 답변을 업데이트했습니다. –
이 값을 읽으려면 NumPy.loadtxt를 사용하지 말고 csv
module을 사용하여 파일을로드하고 해당 데이터를 읽어야합니다.
나는 csv 모듈 사용에 동의합니다. 나는이 대답을 적용했다 : reading csv files in scipy/numpy in Python 귀하의 질문에 적용합니다. 숫자가 적은 배열로 데이터를 원하거나 목록이 충분한 지 확실하지 않습니다.
import numpy as np
import urllib2
import csv
txtFile = csv.reader(open("delnorte.dat.txt", "r"), delimiter='\t')
fields = 5
records = []
for row, record in enumerate(txtFile):
if (len(record) != fields or record[0]=='#'):
pass
# print "Skipping malformed record or comment: {}, contains {} fields ({} expected)".format(record,len(record),fields)
else:
if record[2][0:4] == '2005':
# assuming you want columns 3 & 4 with the first column indexed as 0
records.append([int(record[:][3]), record[:][4]])
# if desired slice the list of lists to put a single column into a numpy array
npData = np.asarray([ npD[0] for npD in records])
'numpy.loadtxt ('delnorte.dat', usecols의 = [2, 3], DTYPE = 객체)' – mmgp