본문 바로가기
수업(국비지원)/Python

[Python] numpy 행렬

by byeolsub 2023. 4. 25.
'''
2022-12-06 복습
# 시각화 과정 -------------------------------
 seaborn 모듈을 이용한 그래프 
   distplot : 밀도선 + 객수의 막대그래프 표시
   kdeplot : 밀도선
   histplot : 갯수의 막대그래프
   heatmap : 표로 이루어진 데이터를 색상으로 표시
   boxplot : box그래프 줄력. 값의 범주를 그래프로 출력
   violinplot : 값의 범주 + 분포도를 표시. 
                가로길이가 넓은 부분은 분포가 많은 수치를 의미.
   pairplot : 각각의 컬럼별 데이터 분포 그리기
              각변수(컬럼)들의 산점도 출력
              대각선위치의 그래프는 히스토그램으로 표시
  FacetGrid : 조건(컬럼의 값)에 따라 그리드 나누기.
              컬럼의 값(범주형 데이터)에 따라서 여러개의 그래프를 출력     
# 지도 시각화 ---------------------------------
  folium 모듈 사용하기         
   CircleMarker : 원형마커
   Marker 
     -> 마커 내부의 아이콘 설정하기
        icon=['home','flag','bookmark','star']  
   MarkerCluster 기능 : 지도확대 정도에 따라 마커 표시방법을 달리해준다.
                        그룹화 기능        

  지도에 데이터의 크기만큼 색상으로 표시
    fill_color : 색상표. 데이터에 맞는 색상값을 가져오기 위한 색상표     
    fill_opacity : 내부 색상 투명도
    line_opacity : 경계선 투명도    
'''

 📌

### numpy : 행렬 또는 통계관련 기본함수, 다차원 배열 기능을 제공하는 모듈
import numpy as np

# 배열 생성
# np.arange(15) : 0 ~ 14까지의 숫자
# reshape(3,5) : 3행 5열의 2차원 배열로 생성
#                배열 갯수가 맞아야함.
a = np.arange(15).reshape(3,5)
a # 0~14까지의 숫자를 3행 5열의 2차원 배열로 생성

type(a) # 결과 -> numpy.ndarray

# 배열 요소의 자료형
a.dtype # 'int32' => 32비트, 4byte

# 배열의 형태
a.shape # (3, 5) => 3행 5열
np.arange(15).shape # (15,) => 1차원 배열
np.arange(15).reshape(15,1).shape # (15, 1) => 2차원 배열

# 배열의 차수 
a.ndim # => 2차원
np.arange(15).ndim # => 1차원

# 배열의 요소의 바이트 크기
a.itemsize # => 4

# 배열 요소의 갯수
a.size # 15 
np.arange(15).size # => 15

# 리스트로 배열 생성하기
b = np.array([6,7,8]) 
b
type(b)

# 튜플로 배열 생성하기
c = np.array((6,7,8))
c
type(c)

# 리스트로 2차원 배열 생성하기
d = np.array([[6,7,8],[1,2,3]])
d

# 0으로 초기화 된 3행 4열 배열 e 생성하기
#1
e = np.array([[0,0,0],[0,0,0],[0,0,0]])
e
e.shape # (3, 3)

#2
e = np.zeros((3,4))
e
e.shape

# 모든 요소의 값이 0인 배열 100개를 1차원 배열로 생성하기
f = np.zeros(100)
f
f.shape # (100,)

# 모든 요소의 값이 1인 배열 100개를 1차원 배열로 생성하기
g = np.ones(100)
g
g.shape # (100,)

# 1으로 초기화된 10행 10열 배열 h 생성하기
h = np.ones((10,10))
h
h.shape # (10, 10)

# 0~999까지의 값을 가진 100행 100열로 배열 i 생성하기
i = np.arange(10000).reshape(100,100)
i.shape # (100, 100)
i[:10]

# 0에서 2까지의 숫자를 9개로 균등분할하여 배열로 생성
j = np.linspace(0,2,9) 
j
j.size # 9

# 0~9까지 숫자를 20개로 균등분할하여 배열로 생성
k = np.linspace(0,2,20)
k
k.size # 20

# 1의 값으로 10개를 가진 배열 l 
l = np.ones(10)
l
l.dtype # 'float64'

# 정수형 1의 값으로 10개를 가진 배열 l 
l = np.ones(10,dtype=int)
l
l.dtype # 'int32'

# 상수값
np.pi # 3.141592653589793