개인공부/Python
65. Python Numpy 연습문제(2)
LEE_BOMB
2021. 11. 29. 20:23
문3) 다음과 같이 단계별로 자료구조를 생성하시오.
단계1 : 1~84 정수를 이용하여 벡터 생성
단계2 : 벡터를 대상으로 7x3x4 구조의 3차원 배열로 모양 변경
단계3 : 3차원 배열을 대상으로 (행,면,열) 축의 순서로 구조 변경
import numpy as np
1. vector 생성
lst = range(1,85) # np.arange(1, 85)
2. 3차원 배열
arr3d = np.array(lst).reshape(7,3,4)
print(arr3d)
print(arr3d.shape)
3. transpose(행,면,열) - (0,1,2) -> (1,0,2)
arr3d_tran = arr3d.transpose(1,0,2)
print(arr3d_tran)
print(arr3d_tran.shape) #(3, 7, 4)
문4) 다음 같은 가중치(weight)와 입력(X)를 이용하여 히든 노드(hidden node)를 구하시오.
<조건1> weight(3,3) * X(3,1) = hidden(3,1)
<조건2> weight 행렬 자료 : 표준정규분포 난수
<조건3> X 행렬 자료 : 1,2,3
import numpy as np
print('weight 행렬 자료')
weight = np.random.randn(3, 3)
print(weight.shape) #(3, 3)
print('X 행렬 자료')
X = np.array([[1],[2],[3]])
print(X.shape) #(3, 1)
print('hidden 노드')
hidden = np.dot(weight, X) #weight @ X
#hidden = weight.dot(X)
#hidden = weight @ X
print(hidden)
print(hidden.shape) #(3, 1)
W[3,3] @ X[3,1] = H[3, 1]