numpy & pandas?

numpy 는 배열 연산을 아주 빠르게 할 수 있는 라이브러리이다.

  • 다차원 배열, 행렬 연산에 good

cf.Pandas는?
->dataframe으로 데이터 조작. 전처리가 편하고 csv, 엑셀, 등의 데이터를 불러들이기 쉽다.
데이터 결측치를 처리하고 집계를 내보는데 좋다.

numpy : 다차원 배열 계산 / pandas : 데이터불러와서 처리하고 집계

배열

  • ndarry 자료구조 형태
  • arr = np.array(list)

python array vs numpy ndarray

ndarry :: 연산하기 쉬운 array.

→ 1. 크기가 고정

  1. 데이터타입 하나

  2. 연산시 편리 (ndarry 원소끼리 연산가능함)

  • 종류
    • 스칼라 : 0차원 데이터
    • 벡터 : 1차원 배열 ex) [1,2,3]은 1차원 배열 & 3차원 벡터
    • 행렬 : 2차원 배열
    • 텐서 : 3차원이상 배열

사용하는 함수

  • np.arange()
  • np.zeros()
  • np.ones()
  • np.full()
  • np.linspace() : 점구간

Random

cf.

정규분포 : 평균과 분산만으로 특성을 설명할 수 있다.

  • 축적된 데이터로 미래 예측 가능
  • +) 표준정규분포 평균 0 표준편차 1

→ 정규분포를 z-score로 선형변환, 표준화한 분포

균등분포 : 모든 확률변수에 대해 균일한 확률을 갖는 것.

ex) 주사위 던지기

np.random.rand(2,3) [0~1 균등분포]

→ (2,3)만큼 랜덤한 숫자들이 출력된다.

np.random.randn() [-1~1 가우시안 표준정규분포]

→ 정규분포 랜덤 만들기

np.random.randint() [균등분포 정수난수]

#정수 랜덤 배열 만들기
np.random.randint(10,100,size=5)
>array([22, 88, 28, 51, 38])

np.random.uniform [균등분포 ]

#np.random.uniform -> 균등 분포
np.random.uniform(1.0,3.0, size=(4,5))
>
array([[2.96009826, 2.12135072, 1.70493583, 1.22503396, 2.55245921],
       [2.81717702, 2.90302249, 1.46511255, 2.57936546, 1.73500019],
       [2.48698504, 1.62567422, 1.5776091 , 1.34054276, 2.81681459],
       [2.85990453, 1.52543373, 1.77811203, 2.89437086, 1.15689608]])

np.random.choice() [정수랜덤 샘플링] 일부추출

np.random.choice(10, size=(2,3)) #0~9사이에 (2,3)뽑기
> 
array([[8, 2, 1],
       [3, 7, 6]])

array([1,2,3,4,5]) ? array ([[1],[2],[3],[4],[5]])

같은 벡터라고 해도

다른 배열로 해야 됨

대부분 열벡터로 취급하기 때문에 2차원 배열 이상부터 취급함

💡

np.random.randint(10,100, size=5)

  • 행벡터일까 열벡터일까
    array([23, 28, 64, 55, 18])
    행벡터처럼보이지만 열벡터로 판단이 됨.

axis

index

arr = np.arange(1,17).reshape(-1,4,4)
arr
array([[[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12],
        [13, 14, 15, 16]]])

array([5,6,7,8])
=> arr[0][1]
7
=> arr[0,1,2]

slicing


arr[:]
array([[[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12],
        [13, 14, 15, 16]]])

array([[ 9, 10, 11, 12]])
=> arr[:,2]

profile
인공지능응용학과 졸업예정..

0개의 댓글