개인공부/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]