전체 글 31

Python : 확률 이항 검정

* 입문책을 읽고 정리한 내용으로, 전공자가 아니어서 잘못된 내용이 있을 수 있습니다. * 잘못된 내용이 있다면 말씀 부탁 드립니다. 확률 시행의 결과가 정상인지 검증하기 위한 방법 중 가장 간단한 방법인 이항검정에 대해 간단히 정리해보고자 한다. 내용은 통계학초입문 책을 참고했다. book.naver.com/bookdb/book_detail.nhn?bid=15872446 통계학 초 입문 ‘통계학’이 뭐지?― ‘돈’과 ‘노동력’의 낭비를 막는다! 통계학은 예부터 우리 실생활 곳곳에서 활용된다.젊은 세대가 앞으로 ‘무엇을 배워야 하느냐’고 묻는다면 저자는 다음 3가지를 book.naver.com 베르누이 시행의 횟수가 충분할 경우, 그 결과는 정규 분포를 따른다. 정규분포를 따를 경우, 해당 확률분포는 다..

Python 2021.04.11

C++20 : std::ranges #3 - range 를 컨테이너로 변환하기

요약 지금은 방법이 없다. ranges::common_view 가 VS에 구현될 때까지 다음 함수를 정의해서 쓰자. template requires std::ranges::range auto toVector(Rng& rng) { std::vector v; if constexpr (std::ranges::sized_range) { v.reserve(std::ranges::size(rng)); } std::ranges::copy(rng, std::back_inserter(v)); return v; } 서론 2021년 3월, VS2019 를 기준으로 포스팅을 하다보니, 아쉬운 점이 많다. 컨테이너를 range 로 변환할 때에는 다음과 같이 views::all() 을 사용하면 되니 간단하다. std::vecto..

C++ 2021.03.24

C++20 : std::ranges #2 - iota_view 만들기

2022.11.27 추가 - VS2022에 std::ranges::views::iota() 가 구현되었다. 이제 다음과 같은 코드를 작성할 수 있다. auto v = std::ranges::views::iota(0) | std::ranges::views::take(3); VS2019 에 구현되지 않은 iota_view 를 간단하게나마 구현하면서 커스텀 range 를 만드는 방법을 간략히 알아보자. 참고로, 표준에서 구현될 예정인 iota_view 의 실제 구현 방식은 다음 문서에서 확인할 수 있다. isocpp.org/files/papers/p0789r0.pdf 만들고자 하는 것 : iota_view 먼저, iota_view 가 어떤 식으로 동작해야 하는지를 알아보자. 헤더에 구현되어 있는 std::io..

C++ 2021.03.22

C++20 : std::ranges #1 - views

std::ranges 가 드디어 c++20 에서 표준화 되었으나, github.com/ericniebler/range-v3 에서 구현됐던 내용의 일부만 들어오거나 다른 부분들이 있어, 이번 기회에 VS2019에 구현된 내용들만 정리해보고자 한다. 현재 사용중인 VS버전은 다음과 같다. Visual Studio Community 2019 - 16.8.5 라이브러리는 16.6버전에서 최초로 릴리즈 되었으므로 혹시 버전이 위 버전보다 낮다면, 업데이트를 해야 한다. VS에서 라이브러리 등의 c++20 피쳐를 사용하려면, 프로젝트 속성에서 다음 옵션을 줘야 한다. VS2019에 구현되어있는 views views::single views::all views::filter views::transform views:..

C++ 2021.03.17

파이썬 왕초보 탈출 #2 - 문자열 입력 / 출력하기

어떤 언어든지, 천리길도 "Hello World" 부터. 언어를 공부하려면 제일 먼저 문자열 입출력부터 배워야 한다. 파이썬3를 기준으로 문자열 입출력 방법을 간단히 소개해보고자 한다. 문자열 출력하기 파이썬은 직관적이다. 다음과 같이 print() 함수를 사용하면, 문자열을 출력할 수 있다. 위와 같이 직접 함수 안에 문자열(쌍따옴표로 묶인 부분)을 전달할 수도 있지만, 아래와 같이 문자열을 변수에 담아 전달할 수도 있다. 위 동작을 풀어서 설명하면 다음과 같다. myString 이라는 변수를 만들고, 이 변수에 "Hello World #2" 라는 문자열을 담아 문자열 타입의 변수로 만들었다. 그리고 이 문자열 변수를 print() 함수로 전달하여 화면에 출력했다. 지금까지 어려울 것은 하나도 없다. ..

카테고리 없음 2021.02.28

Pandas : 데이터 필터링하기 #2 (열 단위 데이터 추출)

데이터 프레임에서 특정 열만 골라 새로운 프레임으로 만들고 싶을 땐 다음과 같이 대괄호를 사용하면 된다. 먼저 다음과 같은 데이터가 있다고 가정한다. import pandas # 테스트 데이터 data = [(0, 'a', '서울'), (1, 'b', '부산'), (2, 'c', '대구'), (3, 'a', '서울'), (4, 'a', '인천'), (5, 'b', '여수'), (6, 'c', '대전')] df = pd.DataFrame(data, columns=['id', 'name', 'location']) df.head() 먼저 한 개의 열만 추출해보자. 하나의 열을 추출하면, 시리즈가 리턴된다. series = df["location"] series.head() 두 개 이상의 열을 추출하려면, 대괄..

Python 2021.01.29

Pandas : 데이터 필터링하기 #1 (행 단위 데이터 추출)

프레임 속에 있는 수많은 데이터 중에, 내가 원하는 대상의 데이터만 골라 새로운 프레임으로 만들고 싶다. (마치 DB에서 where 절을 지정하여 쿼리를 날리듯) 위와 같은 동작은 판다스에서는 loc 프로퍼티로 수행할 수 있다. pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html pandas.DataFrame.loc — pandas 1.2.1 documentation A slice object with labels, e.g. 'a':'f'. Warning Note that contrary to usual python slices, both the start and the stop are included pandas.py..

Python 2021.01.29

파이썬 왕초보 탈출 #1 - Jupyter Notebook 설치

파이썬을 처음 공부하시는 지인분께, "아나콘다 패키지를 다운받고 주피터 노트북으로 공부하시면 편해요" 라고 알려드린 적이 있다. 얼마 후 그분은 피싱 사이트에서 아나콘다 설치파일을 받으시고 랜섬웨어에 걸리셨다.. 이미 프로그래밍 및 관련 생태계에 익숙한 사람들에게는 별 것 아닌 일들이 이제 막 첫 발걸음을 떼신 분들에게는 진입장벽이 될 수 있다는 사실을 알게되는 사건이었다. 이런 시행착오가 줄어들 수 있도록, 이 공간에서는 파이썬을 어떻게 시작하는 것이 편한지 최대한 자세히 설명해볼 생각이다. 파이썬이란 무엇인가? 파이썬은 직관적인 문법을 가진 스크립트 언어로, 프로그래밍을 처음 배우는 사람들이 접하기에 굉장히 적합한 프로그래밍 언어이다. 파이썬의 장점은 단지 프로그래밍을 배우는 것에서 끝나는 것이 아니..

Python 2021.01.03

Unity : Terrain에서 Prefabs Tree가 추가되지 않을 때 (충돌박스 있는 나무 심기)

유니티는 터레인 편집 기능을 자체적으로 제공한다. 터레인에서 다음과 같이 트리를 손쉽게 그릴 수 있다. 위와 같이 Edit Trees 를 선택한 뒤, 트리 "모델" 을 찾아 추가해준다. 그 다음엔 그림판처럼 브러쉬로 터레인 위를 슥슥 드래그하면 나무가 마구 자라난다. 그런데 모델에는 충돌박스를 적용할 수가 없으니, 충돌박스를 박은 나무 prefab 을 Terrain Tree 로 심으려고 해보았다. 안된다. 인터넷을 찾아보니 나보다 먼저 문제를 겪어본 사람들이 많이 있었다. 다음 문서에서 솔루션을 찾았다. forum.unity.com/threads/custom-trees-not-painting.537113/ Custom Trees Not Painting Okay, I've looked at a number..

Unity 2020.12.25

iPad에서 Python 배우기 - Carnets 설치

입사하고 나서 필요에 의해 공부하기 시작한 Python. 일상생활에서 사용하기 좋은 툴을 만들거나, 방대한 자료를 정리하고, 그래프를 그리는데 사용하고 있다. 데스크탑에서는 Jupyter Notebook 이라는 개발환경을 사용 했었는데, 최근 구매한 iPad에서 Python 코딩을 하는 방법이 없을까 찾아보던 차 iPad에서도 Jupyter Notebook 과 비슷한 형식으로 프로그래밍이 가능한 Carnets라는 앱이 있는 것을 발견했다. 평균 별점이 굉장히 높길래 기대하고 다운로드 받았다. 앱을 실행하면, 아이클라우드를 실행한게 아닌가 싶은 화면이 뜬다. iCloude Drive 폴더 안쪽에 Carnets 이라는 폴더가 생겼다. 프로그래밍 한 파이썬 파일들을 어디에 저장할건지 선택하는 창이다. 적절한 ..

Python 2020.12.20