array(iterable [, dtype])
# 3개의 2차원 배열 생성
A1 = np.array([[1, 2, 3], [4, 5, 6]])
A2 = np.array([[7, 8, 9], [10, 11, 12]])
A3 = np.array([[13, 14, 15], [16, 17, 18]])
zeros(shape [, dtype])shape=[int] : 1차원 배열, 원소 개수 [int]개 생성shape=(tuple) : 다차원 배열의 각 축별 size 지정dtype=”” : 데이터 타입 지정, 생략 시 float64
ones(shape [,dtype])shape =, dtype = 동일full(shape, fill_value [, dtype]))shape =, dtype = 동일fill_value = : 채울 값
np.random.seed(시드값)
- 난수 발생 알고리즘이 사용할 시작값(=시드값) 설정
- 시드값 설정 시 항상 일정한 순서의 난수 발생
- 시드값은 숫자 아무거나 상관 X, 특정 숫자에 시드값을 심어둔다고 생각하면 편함
- 랜덤함수는 특정 숫자부터 시작하는 일렬의 수열을 만들어 값을 제공하는 함수로, 시작 숫자는 실행할 때마다 바뀌어 다른 값들이 나옴. 그러나 np.random.seed(시드값)을 통해 시작값을 고정시키면 항상 시작값이 같으므로 같은 값들이 순서대로 제공됨
- 서칭하다 레딧에서 좋은 비유를 발견해 첨부 🔗 링크
“
random.seed()는 무작위 숫자 책을 특정 페이지로 펼치는 거랑 같아. 그 페이지의 숫자들은 여전히 무작위지만, 어떤 페이지를 펼쳤는지 기억하면 항상 같은 무작위 숫자들을 얻을 수 있지. 파이썬에서는, 코드가 매번 실행할 때마다 일관된 결과를 낸다는 뜻이야. ”
⇒ 어떤 페이지 = 시드값, 특정 페이지의 무작위 숫자 = 시드값에 저장된 숫자들로 이해할 수 있음# 난수를 원소로 하는 배열 A5 생성 np.random.seed(0) # 시드 설정 A5 = np.random.rand(1, 5) # 1행 5열 배열 생성 A5 # 출력값 array([[0.5488135 , 0.71518937, 0.60276338, 0.54488318, 0.4236548]]) # 난수를 원소로 하는 배열 A6 생성 np.random.seed(0) # 시드 설정 A6 = np.random.rand(2,5) # 2행 5열 배열 생성 A6 # 출력값 - 시드에 저장되었던 5개의 숫자는 유지되고, 그 다음 행의 숫자들은 새롭게 생성됨 array([[0.5488135 , 0.71518937, 0.60276338, 0.54488318, 0.4236548 ], [0.64589411, 0.43758721, 0.891773 , 0.96366276, 0.38344152]])
np.random.normal(loc=0.0, scale=1.0, size=None)np.random.randint(low, high=None, size=None, dtype='int32') np.random.choice(a, size=None, replace=True, p=None)np.save("파일경로", 배열)np.savez("파일경로", 이름=배열, 이름=배열, ...)np.load("파일경로")
배열[index]
import numpy as np
a = np.arange(30).reshape(5, 6)
a[0] # (0축: 5, 1축: 6) => 0축 기준 첫번째 값을 조회
a[1, 3] # a[0축 index , 1축 index]
a[[1, 1, 3], [1, 4, 4]] # [1, 1], [1, 4], [3, 4]]
ndarry[start : stop : step]
# 2차원 배열 a의 0축: 1~3, 1축: 1~4
a[1:4, 1: 5]