본문 바로가기

프로그래밍

(133)
[통계+R] 카이제곱검정 [초급] 1. 먼저, 범주형(category) 변수가 무엇인지 이해할 필요가 있다. 나도 처음에 이해하기가 힘들었다. 용어들에 대해서 익숙해지려면 반복해서 자꾸자꾸 봐야하는 듯 하다. 2. 범주는 우리 주위에서 쉽게 살펴볼 수 있다. 온라인 서점을 들어가보면 우리가 흔히 말하는 책의 '카테고리'들이 있다.이 카테고리에 값을 줘서 평균을 낸다고 의미가 있을까? 3. 연속형 변수는 '172.1cm, 169.7cm, 183.0cm' 처럼 수치로 부여된다. 범주형 변수는 '빈도(도수, Frequency)'의 형태로 주어지는 것이 대부분이다. 남 여 도수 72명 48명 4. 그러면 범주형 자료를 분석할 수 있는 기법들은 어떤 것들이 있을까? [중급] 범주형 변수에서 주는 거라곤 꼴랑 '빈도'뿐인데, 우리는 어떤 ..
서울시 분실물 공공데이터 CSV 읽어들이기 http://data.seoul.go.kr/에 접속해 "분실물"로 검색하면 SHEET라고 파란색 네모칸이 쳐져있는 글이 있다.여기서 나는 일단 XLS(엑셀)파일로 받았다. CSV파일로 받아서 읽으니까 깨지는 곳이 있었다. 엑셀파일을 받으면 3개의 시트로 이루어진 것을 알 수 있다. 한 시트에 65535행 밖에 담지 못하므로 3개의 시트로 나뉘어져 있다. 그중에서 나는 일단 2번 시트만을 사용하기로 했다. 2번 시트를 열어보면 여러 필드(A, B, C, D, ...)들이 있는데 내가 필요한 5개 필드만 남기고 잘라냈다.다른 파일 이름 저장을 통해서 확장자를 csv로 저장하자. (아래 파일에 정제한 데이터를 따로 붙여넣었다.) lost = read.csv('lost.csv')lost 습득물품명의 name이 ..
아스키(ASCII)코드와 유니코드(Unicode)의 이해 안철수 의원이 의대생 시절에 다른 분야의 지식을 습득하고 싶으면 '칼럼'을 쓰라는 내용을 읽은 적이 있다. 프로그래밍 언어를 공부하다보면 항상 '아스키코드, 유니코드'와 마주치는 순간이 빈번하다. 이번 내용은 내가 답답해서 쓰는 내용이다. 안철수 교수가 작년에 한 케이블 방송에 출연해서 공개한 이른바 '안철수 잡지 공부법'이 다시 회자되고 있습니다. 자신은 잘 모르지만, 꼭 알아야 될 전문지식이 있다면 스스로 잡지사에 전화를 걸어 원고를 쓰겠다고 요청했다고 하지요. 마감일을 지키기 위해 글을 쓰기 위해서는 공부를 해야지요. 이른바 컨트롤 엑스(cx), 컨트롤 카피(cc) 인터넷 시대 글쓰기는 금방 표가 납니다. 이리 저리 떠도는 정보들을 갈무리해서 편집된 글은 깊이가 없지요. 그래도 이런 식으로 글을 쓰..
[파이썬] 문자열 압축하기 문자열을 입력 받아 같은 문자가 연속적으로 반복되는 경우에 그 반복 횟수를 표시해 문자열을 압축하여 표시해 보자. 입력 예시 : aaabbcccccca출력 예시 : a3b2c6a1 def zip(sentence): count = 0 # 문자를 세기 위한 변수 next = "" # sentence가 달라지는 곳을 감지하는 수단 result = "" # 결과를 저장하는 공간 for i in sentence: if next != i: next = i if count: result += str(count) result += i count = 1 else: count += 1 if count: result += str(count) return result 첫번째 for문은 파라미터(parameter)로 전달받은 ..
집합(set), 시퀀스(sequence), 매핑(mapping) 파이썬으로 배우는 수학적 프로그래밍(알란 M.스테이블리 지음)을 참고했습니다.파이썬의 기초 내용에 좀 더 보태 정리한 내용이니 오류 지적은 달게 받겠습니다. 집합(set) 집합 자료형의 특징 1. 중복을 허용하지 않는다. 2. 순서가 없다(Unrordered) 집합은 다양한 것들이 순서 없이 모여 있는 모임 EX) 전화번호의 모든 번호, 이름에서 차례로 된 문자들 다중집합(multi-set)다중 집합은 집합과 비슷하지만, 집합 내 모든 원소가 다를 필요가 없다. 즉 어떤 원소가 하나 이상일 수 있다.하지만 순서가 없다는 것은 집합과 공통점이다.온도를 관찰한 데이터 모임이 다중집합이라고 할 수 있다. 1980년도의 평균온도와 1981년도의 평균 온도가 같을 수 있다. 대신 관측 순서가 중요하기 때문에 데이..
[파이썬] 리스트(list) append 메서드 사용시 NoneType이 출력되는 경우 제가 코드를 작성하면서 실수한 점을 적었습니다. 1. 간단한 문자열 리스트를 작성해보았다. 2. 리스트를 출력해보면 아래와 같이 출력된다.'a''b''c''d' 3. 여기에 append 메서드를 이용해 'e'를 넣어본 뒤 출력하면 아래와 같이 출력될까?'a''b''c''d' 'e' 4. 아니다. None이 출력된다. 그 이유는? 이는 메서드의 리턴값을 몰라서 발생한 오류이다.append 메서드 자체는 return값으로 None을 돌려준다.그래서 print(aList.append('e'))의 값이 None이 출력되는 것이다. 따라서, 다음과 같이 출력하면 정상적인 결과를 얻을 수 있다.aList = ['a', 'b', 'c', 'd'] for i in aList: print(i) aList.append('..
[파이썬] 팰린드롬(palindrome) 문제 회문(回文) 또는 팰린드롬(palindrome)은 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말이다. 보통 낱말 사이에 있는 띄어쓰기나 문장 부호는 무시한다. 예를 들어 내 이름은 거꾸로 해도 이효리 이런 예시가 있다. '구로구', '부익부' 이런 글자도 모두 팰린드롬에 해당한다. 1. print(is_palindrome("racecar")) 2. print(is_palindrome("stars")) 3. print(is_palindrome("토마토")) 4. print(is_palindrome("kayak")) 5. print(is_palindrome("hello")) 1. True 2. False3. True4. True5. False 가 출력되어야 한다. 음.. 착안점은 문자열을 리스트로 만들..
캡슐화 class Point{ int xPos, yPos; public Point (int x, int y){ xPos=x; yPos=y; } public void showPointInfo(){ System.out.println("[" + xPos+", "+yPos+"]"); } } 위 클래스를 활용해 원을 의미하는 Circle 클래스를 정의하자. Circle 클래스는 좌표상의 위치 정보(원의 중심좌표 x, y)와 반지름의 길이 정보를 저장할 수 있어야 한다. 그리고 Circle 클래스를 기반으로 Ring 클래스를 정의하자. 링은 두 개의 원(바깥쪽 원, 안쪽 원)으로 표현해야 하며, Circle 인스턴스를 기반으로 정의가 가능하다. 참고로 안쪽 원과 바깥쪽 원의 중심좌표가 동일하다면 두..