일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sorting
- 코테
- Number Theory
- 구현
- Class
- Math
- simulation
- hash table
- two pointers
- Stack
- Method
- array
- SQL
- Tree
- greedy
- geometry
- implement
- Binary Tree
- Data Structure
- 자바
- 파이썬
- database
- bit manipulation
- Matrix
- dynamic programming
- Binary Search
- 코딩테스트
- string
- Counting
- java
- Today
- Total
목록파이썬 (17)
코린이의 소소한 공부노트
이 글에서는 이미지를 열어보고, 분석해보고, 약간 조작해보려고 한다. 뭐든지 시작하기 전에, 모듈 임포트부터! import numpy as np from PIL import Image # PIL: 파이썬 이미지 분석 라이브러리 import matplotlib.pyplot as plt %matplotlib inline 그림 띄우기 준비 주피터에서 이미지 파일을 불러올 때 필자가 배운 방법은 이것이다. # 현재 주피터노트북 파일이 있는 폴더에 # source라는 폴더가 있고 # 그 안에 MZ.png 파일이 있는 상황 path = 'source/MZ.png' image_pil = Image.open(path) # 경로를 따라가서 파일을 오픈하고 image = np.array(image_pil) # 그 파일의 ..
넘파이를 이용한 코딩을 하다 보면 숫자들을 많이 다루기 때문에 한 번씩 헷갈린다. 그래서 내가 다루고 있는 자료들을 그래프로 확인해볼 일이 종종 생긴다. 이번 글에서 볼 것은 matplotlib를 이용한 그래프 시각화이다. 일단 필요한 모듈을 불러오는 것부터 시작해보자. import numpy as np import matplotlib.pyplot as plt # 이미지를 띄울 수 있게 해주는 모듈 %matplotlib inline # 주피터 내부에 이미지를 띄울 수 있게 해주는 작업 그래프 그려보기 data라는 배열을 이용해서 여러 그래프를 그려보려고 한다. 필자는 randn을 썼지만, 다른 랜덤함수를 써도 상관없다. data = np.random.randn(50) # 무작위로 50개의 수 생성 dat..
딥러닝에서 많이 쓰이는 패키지 중 하나인 numpy에 대해서 이전 글에서 잠깐 언급했었다. 이번 글에서는 넘파이의 기초를 다져보겠다. 기초가 아주 많으니 읽다가 졸지 않기! 시작하기 전에 꼭 준비해야 할 것이 있쥬?! import numpy as np zeros, ones 이름 그대로 0들, 1들이다. 도대체 무엇이? 배열의 원소들이! 일단 zeros부터 살펴보겠다. zeros는 0으로 가득 찬 배열을 만들어준다. z1 = np.zeros([3,3]) # []나 ()를 이용해서 shape를 주면 알아서 만든다. z1 >> array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]) z2 = np.zeros(3) # 정수를 쓰면 행 우선 벡터(1차원)가 만들어진다. z2 # 3..
딥러닝에서는 고차원 데이터를 많이 사용한다. 차원이 눈에 보이는 것이 아니라 상상하기도 어렵고 데이터를 다루기는 더 어려운데, 이것을 도와줄 패키지를 먼저 소개하겠다. import numpy as np 바로 넘파이 numpy라는 것이다. 보통 np로 많이 줄여서 쓰기도 한다. 아래 그림을 한 번 보고, numpy를 이용해서 차원의 개념인 텐서 tensor를 하나씩 이해해보도록 하자. 0차원 1차원 2차원 3차원 점 선 면 입체도형(cube) 스칼라 scalar 벡터 vector 매트릭스 matrix 텐서 tensor 4차원 5차원 6차원 3차원 점으로 이루어진 선 4차원 선으로 이루어진 면 5차원 면으로 이루어진 입체도형 vector of cube matrix of cube cube of cube 참고 ..
네이버나 구글 같은 검색 엔진에서 단어를 검색할 때 대부분 원하는 단어나 문장을 정확히 입력한다. 그런데 왜 한 번씩 그럴 때 있잖아요, c로 시작해서 t로 끝나는 단어인데 중간이 생각이 안 나서 검색하기 힘들 때.. 이런 경우를 위해 검색 연산자를 지원한다. 예를 들어 cat인데 가운데 a가 생각이 안나면 c*t로 검색하면 * 자리에 들어갈 수 있는 모든 경우가 검색이 된다. 중간에 들어가는 것이 2글자라면 c**t로 검색하면 된다. 파이썬에도 비슷한것 같다고 혼자서 우기는 기능이 있다. 정규표현식이라는 것이다. 이번 글에서는 1. 정규표현식이 무엇인지 2. 문자열 패턴은 어떤 식으로 나타내는지 3. 반복되는 패턴은 어떻게 쓰면 되는지 4. 문자열 패턴을 어떤 함수들과 사용 가능한지 알아보도록 하겠다...
그동안 미래의 나에게 설명을 미뤄왔는데, 이제 때가 된 듯하다. 우리가 일상에서 들어본 class는 수업, 학교 반, 게임에서 장비나 유저들의 티어를 나타내는 단어 등이었는데, 파이썬에서의 클래스는 무엇을 뜻하는 것일까? 이번 글에서는 1. 클래스, 오브젝트란 무엇인지 2. 클래스 선언은 어떻게 하는지 3. 클래스 상속은 무엇인지 4. 상속받은 다음 어떤 방식으로 메소드를 정의하는지 5. 특수 함수에는 어떤 것이 있는지 알아보도록 하겠다. 1. 클래스 Class와 오브젝트 Object 파이썬에서 말하는 클래스는 1) 실제 있는 것들을 모델링해서 그것의 속성(attribute 어트리뷰트)과 기능(method 메소드)을 만들어 놓은 데이터 타입으로 2) string, int, list 등등 모두가 클래스다...
그동안 별 설명 없이 import를 많이 써왔다. 이번에 볼 것은 1. 모듈이 무엇인지 2. 사용방법은 어떻게 되는지 3. 많이 쓰는 모듈에는 무엇이 있는지 알아보려고 한다. 1. 모듈(module)이란? 사전에서 나오는 모듈의 정의는 특성을 갖는 기능의 단위라고 나온다. 컴퓨터 하드웨어를 예로 들면 메인 보드, 인터페이스 보드, 보조 입출력 장치, 중앙 처리장치 등이 각 기능을 담당하는 모듈이라고 얘기할 수 있다. 파이썬에서 말하는 모듈은 1) 소프트웨어 모듈을 말하는 건데, 이것은 각종 변수, 함수, 클래스 등 파이썬 정의와 문장들을 모아 놓은 파일이다. 2) 모듈이름.py라는 파일에 담겨 있다. 우리가 임의로 만들어서 사용하는 변수나 함수 등은 프로그램이 끝나면 사라져서 다른 프로그램에서 재사용하는..
함수를 정의해서 사용하다 보면 한 번씩 드는 생각이 있다. 몇 번 안쓰는 함수인데, 매번 식을 써서 쓰기는 귀찮은데 함수 정의를 하자니 너무 거창한 거 같다는 생각.. (나만 그런가?) 예를 들면 두 수를 더한 수에 2를 곱하는 식을 쓴다고 하면 아래와 같이 쓸 수 있다. # 1. 함수 없이 쓰기 a = (3+4)*2 print(a) >> 14 # 2. 재사용을 위해 함수 정의 def addmul(x,y): return (x+y)*2 b = addmul(3,4) print(b) >> 14 함수를 def 키워드를 이용해서 정의를 하면 함수 객체가 생성되고, 메모리 어느 한쪽 구석에서 자리 차지를 하고 있다. 그리고 프로그램 어딘가에서 함수를 호출하면 자리 차지를 하고 있던 함수를 불러와서 쓴다. 메모리가 ..
수학에서 말하는 함수란 두 집합 X, Y가 있을 때, X의 한 원소가 Y의 한 원소에 대응될 때 그 관계를 말한다. 이와 비슷하게 프로그래밍에서의 함수란 주어진 입력(input)을 미리 지정해둔 방법으로 계산해서 출력(output)을 전달하는 것을 말한다. 우리가 지금까지 봤던 함수들을 몇 가지만 살펴본다면 다음과 같다. 함수 입력 출력 함수 입력 출력 sum 숫자 컬렉션 모든 수의 합 len iterable 객체 객체의 길이 range 정수 정수 리스트 get key value list iterable 객체 리스트 등등.. 이렇게 이미 파이썬 내부에 구현되어있는 함수들을 내장함수(built-in function)라고 한다. a = [1, 2, 3, 4] print(len(a)) >> 4 print(su..
# 식 계산, 대입(expression evaluation & assignment) a = 9 print(a) >> 9 print(a - 3) # 식을 계산해서 평가하기 >> 6 print(a) # 평가만 했지 대입은 안했으므로 값은 그대로 >> 9 # 두 변수의 값 바꾸기 a = 6 b = 3 temp = a # a = 6, b = 3, temp = 6 a = b # a = 3, b = 3, temp = 6 b = temp # a = 3, b = 6, temp = 6 print(a, b) >> 3 6 # 1부터 20까지의 자연수 중 2의 배수 또는 7의 배수를 모두 출력하기 a = set(range(2, 21, 2)) # 2부터 2씩 건너뛰어 2의 배수 집합 만들기 b = set(range(7, 21,..