책 <파이썬 자료구조와 알고리즘>을 기본으로 배운 자료구조 내용입니다.
목차
-
숫자(정수, 부동소수점, 복소수)
-
넘파이 패키지(numpy 배열 생성 및 초기화)
<숫자>
정수
int(문자열, 밑) : 다른 진법으로 변환
부동소수점 float
부동소수점끼리 비교
1. assertAlmostEqual()이용
2. 부호 비교한후 음수면 부호포함 숫자반전하여 비교
복소수 z = 3+4j
실수부 : z.real
허수부 : z.imag
켤레 복소수 : z.conjugate()
<넘파이 패키지>
: 대규모의 다차원 배열·행렬 지원, 배열 연산에 쓰이는 수학 함수 라이브러리 제공
numpy 배열 생성
1차원 배열 arr = [1, 2, 3] a = np.array([1, 2, 3]) |
2차원 배열 arr = [(1,2,3), (4,5,6)] a= np.array(arr, dtype = float) |
3차원 배열 arr = np.array([[[1,2,3], [4,5,6]], [[3,2,1], [4,5,6]]]) a= np.array(arr, dtype = float) |
shape: (3,) dimension: 1 |
shape: (2, 3) dimension: 2 |
shape: (2, 2, 3) dimension: 3 |
[1 2 3] |
[[ 1. 2. 3.] [ 4. 5. 6.]] |
[[[ 1 2 3] [ 4 5 6]] [[ 3 2 1] [ 4 5 6]]] |
numpy 배열 생성 및 초기화
np.zeros 함수 지정된 shape의 배열을 생성하고, 모든 요소를 0으로 초기화 |
np.ones 함수 지정된 shape의 배열을 생성하고, 모든 요소를 1로 초기화 |
np.full 함수 지정된 shape의 배열을 생성하고, 모든 요소를 지정한 "fill_value"로 초기화 |
np.eye 함수 (N, N) shape의 단위 행렬(Unit Matrix)을 생성 |
np.empty 함수 지정된 shape 배열생성/ 요소의 초기화 과정이 없고, 기존 메모리값을 그대로 사용 |
a = np.zeros((3, 4)) |
a = np.ones((2,3,4) |
a = np.full((2,2),7) ※ fill_value = 7 |
np.eye(4) |
a = np.empty((4,2)) |
shape: (3, 4) dimension: 2 |
shape: (2, 3, 4) dimension: 3 |
shape: (2, 2) dimension: 2 |
shape: (4, 2) dimension: 2 |
|
[[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]] |
[[[1 1 1 1] [1 1 1 1] [1 1 1 1]]
[[1 1 1 1] [1 1 1 1] [1 1 1 1]]] |
[[7 7] [7 7]] |
[[ 1., 0., 0., 0.], [ 0., 1., 0., 0.], [ 0., 0., 1., 0.], [ 0., 0., 0., 1.]] |
[[ 0.00000000e+000 6.91240343e-310] [ 6.91240500e-310 5.39088070e-317] [ 5.39084907e-317 6.91239798e-310] [ 3.16202013e-322 6.91239798e-310]] |
like 함수
: numpy는 지정된 배열과 shape이 같은 행렬을 만드는 like 함수를 제공함.
- np.zeros_like
- np.ones_like
- np.full_like
- np.enpty_like
'⏳ 알고리즘 > python 알고리즘 개념' 카테고리의 다른 글
함수 인자 & 패킹, 언패킹 (0) | 2019.12.31 |
---|---|
배열 기반의 연속 방식(2) - 컬렉션 자료구조(set, 딕셔너리) (0) | 2019.12.31 |
배열 기반의 연속 방식(1) - 내장 시퀀스 타입(문자열, 튜플, 리스트) (0) | 2019.12.31 |
자료구조와 자료구조의 종류 (0) | 2019.12.31 |
시간 복잡도, 공간 복잡도 (0) | 2019.12.23 |