def load_tic(shuffle=True):
label={'x':2,'o':3,'b':4, 'TRUE':0,'FALSE':1}
data = np.loadtxt("tic-tac-toe.csv", skiprows=1, delimiter=',',
converters={0:lambda xob:label[xob.decode()],
1:lambda xob:label[xob.decode()],
2:lambda xob:label[xob.decode()],
3:lambda xob:label[xob.decode()],
4:lambda xob:label[xob.decode()],
5:lambda xob:label[xob.decode()],
6:lambda xob:label[xob.decode()],
7:lambda xob:label[xob.decode()],
8:lambda xob:label[xob.decode()],
9:lambda clas:label[clas.decode()]})
if shuffle:
np.random.shuffle(data)
return data
하하 과제의 거의 시작부분인데 여기서부터 오류가 나서 왕왕 헤맸다 ... 무려 다섯시간 ㅎㅎ
처음엔 converters를 추가하려면 어떻게 해야하는지 형식을 몰라서 별 괄호를 다 넣어서 오류에 부딪히다가
결국 한 블로그를 보고 찾았다 ... 휴 압도적 감사 .. 보통 문자 형식을 float형식으로 바꿀 수 없다는 오류가 났다
<오류 난것들>
ValueError: could not convert string to float: 'x'
typeerror: unhashable type: 'dict'
NumPy_파일입출력
2019.02.14 연습문제¶ iris 데이터를 속성별로 정규화 하시오(평균이 0, 표준편차1) In [1]: import numpy as np import matplotlib.pyplot as plt In [2]: f = open('iris.csv') line = f.rea..
jfun.tistory.com
labels=['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']
Iris = np.loadtxt('iris.csv', skiprows=1, delimiter=',',
converters={4: lambda s: labels.index(s.decode())})
# decode는 컴퓨터가 문자열을 불러올때 숫자형태로 불러오는데 그것을 우리가 아는 문자로 불러오기 위한 규칙 <> incode
'''converters = {0 : c0, 1 : c1, ...}
각 속성마다 따로 함수를 지정해줄수 있다.'''
iris.shape
요것이당 그래서 이건해결하고 이제 되겠지 ? 했는데 자꾸 KeyError: 'true'가 났다.
어떻게 해결하냐면 ,, 그냥 TRUE랑 FALSE를 소문자로 바꿔주면된다 ㅎㅎ
개빡쳐 이걸로 5시간 헤맷다.
왜 제목으로 유입이 되는지 모르겠지만 .. 무슨 오류이든 잘 해결되길 바랍니다 무엇이든 화이팅!
Comment