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]])