Python

    Shuffle에 대해서

    shuffle이라는 말은 임의로 섞는다는 의미이다. mp3에서 임의로 노래의 순서를 섞어서 플레이할 때 사용되기도 한다. 더 많은 내용은 키워드 'random permutation'혹은 'the algorithm shuffles the sequence' 으로 살펴볼 수 있다. 아래는 그 이론에 대한 내용과 구현에 대해서 살펴본다. shuffle 이론들 1. Fisher-Yates shuffle def shuffle(a): n = len(a) for i in range(n - 1): # i from 0 to n-2, inclusive. j = random.randrange(i, n) # j from i to n-1, inclusive. a[i], a[j] = a[j], a[i] # swap a[i] and..

    <서평> 만들면서 배우는 파이썬과 40개의 작품들

    파이썬과 40개의 작품들 - 교보문고 흥미로운 주제로 가득차있고 따라치면 그대로 결과물이 나온다. 단, 유일한 단점은 Font이다. '와 "의 자간이 너무 넓어서 띄어쓰기로 혼동된다. 앤써북에서 출판한 책들 중에 흥미를 끄는 책이 나왔다. 개발자에게 장난감 40가지 종합 선물세트같은 책이다. Hello world 모음집같은 간단한 소스와 간단하지 않은 내용들로 가득차있다. 그래서 python을 막 배운 사람들도 재미있고 개발을 오래 한 사람들도 재미있는 책이다. 단, 한 분야를 깊게 이해하고 싶은 사람이라면 해당 분야의 책을 찾아서 봐야한다. 이 책은 python에 대한 흥미를 끌어올릴 만한 교양서이지 전공 서적이 아니다. 40가지 중에 3가지 예제를 직접 해보면서 책의 내용을 살펴보았다. 직접 해보니 ..

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte

    python에서 pandas의 read_csv을 하다가 만난 에러이다. 한글의 경우 utf-8, utf-16, euc-kr 등으로 인코딩이 된 파일이 있는데 이 중에 하나의 encoding으로 설정해야지 해당 에러가 안나오고 글자가 잘 읽어온다. 여러 블로그에서 본 것 중에 필자는 CP494로 해결이 되었다. pd.read_csv("path.csv", encoding = 'CP949') CP494 란 한글 인코딩의 한 종류이며 EUC-KR의 한 종류이다. https://namu.wiki/w/CP949 CP949으로 해결이 안되면 다른 종류의 encoding을 시도해보면 좋다

    네이버 주식 일별 시세 크롤링 (request을 이용, format json)

    네이버 주식 일별 시세 크롤링 (request을 이용, format json)

    요즘에 취미로 데이터 모으는 기법을 공부하고 있다. 특히 시계열 데이터를 다루는걸 하는데 pandas datareader로 읽어오면 일별 시세가 온전하지 않아서 naver 주식 일별 시세의 정보로 만드는 코드를 만들었다. python 네이버 주식 일별 시세를 크롤링으로 pandas datareader형태로 시작일부터 종료일까지 json file로 export하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68..

    list에서 짝수 홀수 출력하기

    Reference : http://desk.stinkpot.org:8080/tricks/index.php/2007/10/extract-odd-or-even-elements-from-a-python-list/ 제가 채택한 방법은요, x = range(1, 10)x[::2]x[1::2]

    [python] print에서 new line(개행문자) 출력하지 않는 방법

    print 뒤에 , 을 붙이면 됩니다. print(.) -> print(.), ref : http://stackoverflow.com/questions/493386/how-to-print-in-python-without-newline-or-space

    [python] 파일 입출력 코드/예제

    import sys argc = len(sys.argv) argv = str(sys.argv) # Print it print ("The total numbers of args passed to the scripts : %d" % argc) print ("Args list : %s" % argv) # Wrtie file fwrite = open("result.log", "w") for i in range(1, 11) : data = "%d line \n" %i fwrite.write(data) fwrite.close() # Read file fread = open(sys.argv[1], 'r') while True: line = fread.readline() if not line: break print(l..