AI공부/딥러닝 시작

[Numpy] 배열 생성과 형태, 브로드캐스팅

/owo/ 2024. 4. 30. 00:26

넘파이 가져와서 배열 생성하기

축의 개수: x.ndim

모양 확인: x.shape

데이터 타입: x.dtype

배열 타입: type(x)

import numpy as np

x = np.array([1.0, 2.0, 3.0])

x.ndim  # 1  //1차원 배열
x.shape  # (3,)
x.dtype  # dtype('float64')
type(x)  # numpy.ndarray

 

배열의 초기화

- np.zeros(): 0으로 채우기

zero = np.zeros((2, 3))

array([[0., 0., 0.],
       [0., 0., 0.]])

 

 - np.ones(): 1로 채우기

one = np.ones((2, 3))

array([[1., 1., 1.],
       [1., 1., 1.]])

 

 - np.full(): 사용자 지정값으로 채우기

# 사용자 지정값(9)
num = np.full((2, 3), 9)

array([[9, 9, 9],
       [9, 9, 9]])

 

 - np.eye(): 대각선이 1이고 나머지는 0인 배열(단위행렬:unit matrix)

unit = np.eye(3)

array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

 

 - 임의의 값을 가지는 배열: np.random.random()

rand = np.random.random((2, 3))

array([[0.5241018 , 0.36579936, 0.38470367],
       [0.02468679, 0.37021498, 0.23283397]])

 

 - 다차원 변형: reshape()

'-1'을 넣으면 자동으로 맞춰준다

a = np.array(range(10)) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

b = a.reshape(-1, 2) 

array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

하지만 제대로 안맞으면 ValueError 발생

---->  b = a.reshape(-1, 3)

ValueError: cannot reshape array of size 10 into shape (3)

 

넘파이 자동 브로드캐스팅: 자동으로 배열의 형태에 맞추어 연산

x = np.array([[1, 2], [3, 4]])
y = np.array([10, 20])

x+y

array([[11, 22],
       [13, 24]])