numpy import 하기
import numpy as np
numpy array 기본 생성
nd1 = np.array([[1,2], [3,4]]) nd1
array([[1, 2, 3], [3, 4, 1]])
numpy 주요 속성
nd1.ndim ## 차원(rank) nd1.size ## 전체 요소 개수 nd1.shape ## axis별 길이, 예를 들면, 행과 열의 길이 nd1.dtype ## 데이터 타입
list 기반 array 생성 방법
list_1 = [2, 3, 4, 5, 6] list_2 = [[1, 3, 9], [2, 4, 5]] np1 = np.array(list_1) print(np1) np2 = np.array(list_2) print(np2)
[2 3 4 5 6] [[1 3 9] [2 4 5]]
arange를 이용한 array 생성
np3 = np.arange(1, 10, 1) np3
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
인자값 : arange([start,] stop[, step,], dtype=None)
1차원 array
arr = np.array([3,4,5,6]) print(arr[0], arr[1], arr[2], arr[3]) arr[0] = -1 print(arr[0])
3 4 5 6 -1
2차원 array
arr2 = np.array([[-1, -2, -3], [1, 2, 3]]) print(arr2) print(arr2[0,0], arr2[0,1])
[[-1 -2 -3] [ 1 2 3]] -1 -2
np.linspace
start, stop 구간에 num 개수만큼의 수를 생성
arr4 = np.linspace(1, 10, 11) print(arr4) # 결과가 다를 수 있음
[ 1. 1.9 2.8 3.7 4.6 5.5 6.4 7.3 8.2 9.1 10. ]
인자값: linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
np.reshape
2차원 array 형태로 변경
arr = np.arange(1, 21) print(arr) print(arr.reshape(4, 5)) print(arr.reshape(5, -1)) # -1은 자동으로 계산 해줌
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] [[ 1 2 3 4 5] [ 6 7 8 9 10] [11 12 13 14 15] [16 17 18 19 20]] [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12] [13 14 15 16] [17 18 19 20]]
값이 0인 array 생성
arr = np.zeros((4, 3)) # 4행 3열 print(arr)
[[0. 0. 0.] [0. 0. 0.] [0. 0. 0.] [0. 0. 0.]]
값이 특정값인 array 생성
arr = np.full((5,5), 9) print(arr)
[[9 9 9 9 9] [9 9 9 9 9] [9 9 9 9 9] [9 9 9 9 9] [9 9 9 9 9]]
랜덤 array 생성
arr = np.random.random((3,3)) print(arr)
[[0.85777186 0.30972185 0.68516839] [0.63169974 0.7340727 0.91552124] [0.45381733 0.84770997 0.88914974]]
dtype 변경하기
arr = np.array([1,2,3,4,5]) print(arr.astype(np.float64))
[1. 2. 3. 4. 5.]
array 연산
a = np.array([[1,2], [3,4]], dtype=np.float64) b = np.array([[5,6], [7,8]], dtype=np.float64) print("덧셈") print(a + b) print(np.add(a,b)) print("뺄셈") print(a - b) print(np.subtract(a, b)) print("곱셈") print(a * b) print(np.multiply(a, b)) print("나눗셈") print(a / b) print(np.divide(a, b))
덧셈 [[ 6. 8.] [10. 12.]] [[ 6. 8.] [10. 12.]] 뺄셈 [[-4. -4.] [-4. -4.]] [[-4. -4.] [-4. -4.]] 곱셈 [[ 5. 12.] [21. 32.]] [[ 5. 12.] [21. 32.]] 나눗셈 [[0.2 0.33333333] [0.42857143 0.5 ]] [[0.2 0.33333333] [0.42857143 0.5 ]]
array 슬라이싱
x = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]]) print(x[:2, 1:3]) # 0 ~ 2까지 행, 1 ~ 3까지 열
[[2 3] [6 7]]