Repository navigation
Expand file tree
/
Copy patharrayEx1.py
More file actions
50 lines (39 loc) · 2.16 KB
/
Copy patharrayEx1.py
File metadata and controls
50 lines (39 loc) · 2.16 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# NumPy : 숫자 배열을 빠르게 다루는 라이브러리
# 이 저장소에서 처음으로 설치가 필요한 챕터입니다 (pip install numpy)
import numpy as np # np 라는 별명이 관례입니다
print('========== 배열 만들기 ==========')
a = np.array([1, 2, 3, 4, 5])
print(a, type(a))
b = np.array([[1, 2, 3], [4, 5, 6]]) # 2차원
print(b)
print('zeros :', np.zeros(3))
print('ones :', np.ones((2, 3)))
print('arange :', np.arange(0, 10, 2)) # range 와 같은 규칙
print('linspace:', np.linspace(0, 1, 5)) # 0~1 을 5등분 (끝값 포함)
print('full :', np.full(3, 7))
print('eye :', np.eye(2)) # 단위행렬
print('\n========== 배열의 정보 ==========')
print('shape :', b.shape) # (2, 3) — 2행 3열
print('ndim :', b.ndim) # 차원 수
print('size :', b.size) # 전체 원소 개수
print('dtype :', b.dtype) # 원소의 자료형
print('\n========== dtype : 리스트와 결정적으로 다른 점 ==========')
# 리스트는 아무 타입이나 섞어 담을 수 있었다 (step05 참고)
py_list = ['홍길동', 23, 175.5, True]
print('리스트 :', py_list)
# ndarray 는 전부 같은 타입이어야 한다. 섞으면 하나로 통일해 버린다
mixed = np.array([1, 2.5, 3])
print('int + float →', mixed, mixed.dtype) # 전부 float
mixed2 = np.array([1, 2, '3'])
print('int + str →', mixed2, mixed2.dtype) # 전부 문자열!
print('타입 지정 :', np.array([1, 2, 3], dtype=float))
print('타입 변환 :', np.array([1.7, 2.9]).astype(int)) # 버림 (반올림 아님)
print('\n========== 왜 같은 타입이어야 하나 ==========')
# 모든 원소가 같은 크기로 메모리에 나란히 놓입니다.
# 그래서 "3번째 원소" 를 계산으로 바로 찾아갈 수 있고,
# CPU 가 여러 개를 한 번에 처리할 수 있습니다. 속도의 근거입니다.
print('배열 1개 원소 크기 :', a.itemsize, '바이트')
print('전체 메모리 :', a.nbytes, '바이트')
print('\n========== 리스트 ↔ 배열 ==========')
print('리스트 → 배열 :', np.array([1, 2, 3]))
print('배열 → 리스트 :', a.tolist())