본문 바로가기
안드로이드 정리 ConstraintLayout: 여러 개의 child View들을 flexible하게 구성할 때 FrameLayout: 하나의 child view를 가질 때 사용 하나의 RecyclerView를 가질 때는 FrameLayout 안에 하나의 RecyclerView를 가지도록 구성 2022. 2. 20.
Numpy 튜토리얼 Numpy는 다차원 배열을 이용해 선형대수, 통계 등의 계산을 빨리할 수 있게 만들어 주는 라이브러리이다. 파이썬 리스트와 넘파이 배열의 차이점 파이썬 리스트: 서로 다른 데이터 타입을 하나의 리스트에 넣을 수 있다. 넘파이 배열(numpy array): 같은 타입의 자료형만 넣을 수 있음 넘파이를 사용하는 이유: 파이썬 리스트보다 빠르며, 메모리를 적게 사용한다. 배열(array)는 넘파이가 사용하는 자료구조. 배열의 모든 구성요소는 같은 타입이다. 이 타입은 dtype이라 한다. 배열은 0이 아닌 정수, 불리안, 다른 배열로 접근 가능하다. 배열의 rank는 차원의 개수 배열의 shape은 각 차원의 크기 넘파이 배열은 파이썬 리스트를 이용해 초기화한다. a = np.array([1, 2, 3]) n.. 2022. 2. 9.
선형대수학 1. 주요 용어 스칼라(scalar): 하나의 숫자, 예를 들면 4, 3.8 등 벡터(vector): 순서있는 숫자 리스트, 예를 들면 $$\textbf{x} = \begin{bmatrix} x_{1} \\ x_2 \\ \vdots \\ x_n \end{bmatrix} \in \mathbb{R}^{n}$$ 참고로 순서없는 숫자 리스트를 집합(set)이라 한다. 행렬(matrix): 2차원 배열의 숫자 $$A = \begin{bmatrix} 1 & 6 \\ 3 & 4 \\ 5 & 2 \end{bmatrix} \in \mathbb{R}^{3 \times 2}$$ 행렬의 크기는 $3 \times 2$, 3개의 행(row)과 2개의 열(column) 벡터에는 두 가지 선택지가 있다. 행 벡터(row vector)와 열 벡터(c.. 2022. 1. 10.
베이즈 통계학 01 확률 Allen B. Downey의 책 Think Bayes 중 1장 확률(probability) 부분을 학습하고 정리한 내용입니다. 베이즈 통계학(Bayesian statistics)의 근간은 베이즈 이론(Bayes's Theorem)이고, 베이즈 이론의 바탕은 조건부 확률(conditional probability)입니다. 조건부 확률을 이용해 베이즈 정리를 유도할 수 있으며, 베이즈 이론을 이용해 조건부 확률과 관련된 문제를 풀 수 있습니다. 결합 오류(Conjunction fallacy = Linda theBanker) 결합 오류라고 알려진 유명한 실험을 이용해 조건부 확률을 설명해 본다. 이 유명한 실험은 아래와 같다. 린다(Linda)는 31살의 싱글이며, 거침없이 말을 하는 매우 밝은 성격의 소유.. 2022. 1. 9.
파이썬 문자열 출력 포맷팅 방법 f-string, str.format(), % 파이썬(Python)에서 문자열 출력 형식을 설정하는 세 가지 방법에 대해 알아봅니다. 포맷 문자열(formatted string literals, f-string) Python 3.6 이상에서 동작하는 문법이다. 문자열 앞에 f 혹은 F를 붙여 주고, 중괄호 {, } 안에 변수명을 써서 해당 변수를 참조하여 문자열을 만들 수 있다. 최신 파이썬에서 추가된 만큼 속도 또한 다른 문자열 형식에 비해 빠르다. year = 2016 event = 'Referendum' print(f'Results of the {year} {event}') # 'Results of the 2016 Referendum' 중괄호 안에서 연산을 수행할 수 있다. box = 10 apple = 20 print(f'Total count.. 2022. 1. 8.
처음 배우는 네트워크 보안 이 글은 한빛미디어 도서 서평단 나는 리뷰어다 2021을 통해 책을 제공받아 작성하였습니다. 이 책은 번역서 '처음 배우는 네트워크 보안(장상근 지음, 한빛미디어)' 입니다. 이 책은 실용적으로 적용할 수 있는 네트워크 보안 시스템을 구축하는 방법에 대한 내용을 담고 있습니다. 실제 중소기업이나 소규모 업체에서 보안 담당자들이 어떤 역할을 해야 하는지, 어떻게 하면 보안 시스템을 구축하고 관리하며 팀을 구성할 수 있는지 다루고 있습니다. 기본적인 네트워크에 관한 지식들을 정리해 주며, 실제 코드들과 함께 보안 구축을 하기 위해 필요한 도구들의 사용 방법을 스크린 샷과 함께 친절하게 알려 줍니다. 다만, 실제 실습들은 가상 머신 위에서 동작시켜야 하며, 여러 가상 머신을 돌리기 위해 어느 정도의 컴퓨팅 파.. 2021. 12. 25.
그로킹 심층 강화학습 이 글은 한빛미디어 도서 서평단 나는 리뷰어다 2021을 통해 책을 제공받아 작성하였습니다. 이 책은 번역서 '그로킹 심층 강화학습(미겔 모랄레스 지음, 한빛미디어)' 입니다. 이 책은 심층 강화학습의 이론과 실제 코드 작성에 대해 알려 줍니다. 기본적인 딥러닝 지식이 있으면 책을 읽어나가는 데 수월하지만 신경망에 대한 기초적인 지식들도 다룹니다. 1장 와 2장 에서는 강화학습에 대한 기초와 이를 이해하기 위한 수학적인 배경과 프레임 워크를 소개합니다. 3장 에서는 에이전트가 환경의 다이나믹스를 알 때 문제를 푸는 알고리즘을, 4장 에서는 환경의 다이나믹스를 알지 못 할 때 문제를 푸는 알고리즘에 대해 설명합니다. 5장 6장 에서는 시행착오를 통해 학습하여 정책을 최적화 시키는 방법을 설명하고, 7장 에.. 2021. 11. 21.