1 분 소요

import warnings
warnings.filterwarnings('ignore')
#넘파이는 수치해석용 파이썬 패키지이다. 다차원의 배열 자료구조 클래스인 ndarray 클래스를 
#지원하며 벡터와 행렬을 사용하는 선형대수 계산에 주로 사용된다
import numpy as np
from IPython.display import Image
arr = np.arange(0, 32)
print(arr)
print(len(arr))
print(type(arr))
#arr.shape => 속성의 크기 반환
print(arr.shape)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 24 25 26 27 28 29 30 31]
32
<class 'numpy.ndarray'>
(32,)
#reshape()함수는 넘파이 배열의 차원을 변경한다.
#차원 4개(첫번째 4), 행이 2개, 열이 4개(세번째 4)
#3차원 적으로 생각하자.
v=arr.reshape(4,2,4)
print(v)
[[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]

 [[16 17 18 19]
  [20 21 22 23]]

 [[24 25 26 27]
  [28 29 30 31]]]
Image('./numpyImages/shape1.png', width=600) 

output_3_0

Image('./numpyImages/shape2.png', width=600) 

output_4_0 넘파이의 sum() 함수의 작동방식

#sum()함수의 axis 속성의 기본값은 'None' 이고 axis는 대상 데이터의
#차원보다 작은 값을 설정한다.
#위의 예제 차원이 데이터의 차원이 3이기 때문에 axis속성은 최대 2까지
#지정할 수 있다.
#ndim : 넘파이 배열의 차원(dimension)을 얻어온다.
print(v.ndim)
3
#axis=None
#axis를 기본값으로 설정하면 대상 데이터의 모든 요소의 합계를 계산해서 리턴한다.
#대상 데이터에 포함된 모든 요소를 단순히 합산하는 연산이 실행된다.
print(v.shape)
print(v.sum())
print(v.sum(axis=None))
(4, 2, 4)
496
496
#axis=0
#axis=0는 x축을 기준으로 계산한 함계를 리턴한다.
#shape(4,2,4)이네 데이터를 x축을 기준으로 합계를 
#계산하고 결과 shape은 면이 제거되고 (2,4)가 남는다.
result = v.sum(axis=0)
print(result)
print(result.shape)
print(result.ndim)
[[48 52 56 60]
 [64 68 72 76]]
(2, 4)
2
#axis=0는 가장 외광의 괄호를 제거하는 이미지를 생각하면 된다.
#아래 그림처럼 가장 외광의 괄호를 제거하고 각 행의 데이터는
#위치별로 합계를 개산한다.
Image('./numpyImages/shape3.png', width=800) 

output_9_0

Image('./numpyImages/shape4.png', width=800) 

output_10_0

#axis=1
#axis=1는 y축을 기준으로 계산한 함계를 리턴한다.
#shape(4,2,4)이네 데이터를 y축을 기준으로 합계를 
#계산하고 결과 shape은 행이 제거되고 (2,4)가 남는다.
result = v.sum(axis=1)
print(result)
print(result.shape)
print(result.ndim)
[[ 4  6  8 10]
 [20 22 24 26]
 [36 38 40 42]
 [52 54 56 58]]
(4, 4)
2
#axis=0는 가장 가운데의 괄호를 제거하는 이미지를 생각하면 된다.
#아래 그림처럼 가장 가운데의 괄호를 제거하고 각 행의 데이터는
#위치별로 합계를 개산한다.
Image('./numpyImages/shape5.png', width=800) 

output_12_0

Image('./numpyImages/shape6.png', width=800)

output_13_0

#axis=2
#axis=2는 z축을 기준으로 계산한 함계를 리턴한다.
#shape(4,2,4)이네 데이터를 z축을 기준으로 합계를 
#계산하고 결과 shape은 열이 제거되고 (4,2)가 남는다.
result = v.sum(axis=2)
print(result)
print(result.shape)
print(result.ndim)
[[  6  22]
 [ 38  54]
 [ 70  86]
 [102 118]]
(4, 2)
2
#axis=0는 가장 안쪽의 괄호를 제거하는 이미지를 생각하면 된다.
#아래 그림처럼 가장 안쪽의 괄호를 제거하고 각 행의 데이터는
#위치별로 합계를 개산한다.
Image('./numpyImages/shape7.png', width=800) 

output_15_0

Image('./numpyImages/shape8.png', width=800)

output_16_0

댓글남기기