# 1차원 벡터 x = np.array([1, 2, 3, 4]) print(x) # 2차원 행렬(2행 3열), 리스트안에 리스트로 만듬 y = np.array([[2, 3, 4], [1, 2, 5]]) print(y) # 타입 확인 print(type(y)) # 차원 확인 print(x.ndim, y.ndim)
np.arange 함수로 생성하기
1 2
# 0 ~ 9까지 ndarray 생성 np.arange(10)
1 2
# 1 ~ 9까지 ndarray 생성 np.arange(1, 10)
1 2
# 1 ~ 9까지 2칸씩 띄어서 생성 np.arange(1, 10, 2)
1 2
# 5 ~ 100까지 5의 배수 생성 np.arange(5, 101, 5)
zeros, ones
1 2
# 4행 5열의 모든 원소가 1인 ndarray 생성, 튜플을 이용하여 생성 np.ones((4, 5))
1 2 3
# 3차원 tensor 생성 # 3행 4열의 행렬 2개, 대괄호가 3개 생김 np.ones((2, 3, 4))
1 2 3
# 4차원 생성 # 대괄호가 4개 생김 np.zeros((2, 3, 8, 8))
1 2
# 초기화된 ndarray 생성 np.empty((3, 4))
1 2
# 7로만 이루어진 tensor 생성 np.full((3, 4), 7)
1 2 3
# 5행 5열의 단위 행렬 2차원 # 대각선의 모든 값이 1, 나머지 0 np.eye(5)
np.linspace
1 2 3
# 시작, 끝, 전체 수가 3개가 되도록 나눔 # 원소간의 차이가 동일하게 만듬 np.linspace(1, 10, 3)
1 2
# 숫자 사이 간격이 동일하게 np.linspace(1, 10, 4)
1 2 3
# 4등분, 전체 갯수 5 # 그래프에서 x축에 균등하게 값을 줄 때 사용 np.linspace(1, 10, 5)
reshape
1 2 3 4 5 6
# 1 ~ 15까지 벡터 생성 x = np.arange(1, 16) print(x)
# 1차원의 shape x.shape
1 2
# 2차원의 행렬로 형태를 바꿈, 3행 5열로 변경 x.reshape(3, 5)
1
x. reshape(5, 3)
1 2
# 3차원으로 바꿈, 3행 1열이 5개 x.reshape(5, 3, 1)
1 2 3
# 숫자 20개 필요하나 x안에는 15개만 있으므로 대응이 불가능하여 오류 발생 # reshape 하려는 숫자가 원래 존재하는 숫자와 동일한지 확인 필요 x.reshape(5, 4)
random 서브 모듈 이용하여 ndarray 생성히기
랜덤한 값을 생성
보통 train 전 초반에 무작위 값을 생성
1 2 3
# rand 함수, 2행 3열의 랜덤한 값 생성 # 0과 1 사이의 값이 생성 np.random.rand(2, 3)
1 2
# 1차원 벡터 np.random.rand(10)
1 2
# 3차원 tensor, 4행 2열 np.random.rand(3, 4, 2)
1 2 3 4
# 정규분포, n: normal distribution(정규분포) # 정규분포로 샘플링된 랜덤 ndarrya 생성 # 정규분포이므로 음수값도 생성 np.random.randn(3, 4)
randint 함수
정수에서 샘플링할 때 사용
1 2 3
# 정수에서 샘플링할 때 사용 # 1 ~ 99, 3행 5열 2차원 행렬 np.random.randint(1, 100, size=(3, 5, 2))
seed 함수
랜덤한 값을 동일하게 다시 생성하고자 할 때 사용
고정된 랜덤 값
1 2 3
# 항상 호출 전 동일한 값을 갖고 싶을 때 사용 np.random.seed(100) np.random.randn(3, 4)