Python Numpy Summary

Numpy

  • Python 에서 기본적으로 지원하지 않는 array(배열) 와 matrix(행렬) 의 계산을 도와주는 라이브러리
  • 사용하려면 import numpy 로 라이브러리를 호출해야 한다.

numpy.ndarray

  • n차원 배열을 생성하는 함수
  • 사용법 : numpy.array([[1,2],[3,4]])

numpy.ndarray.shape

  • 배열의 모양을 확인할 수 있다.
    A = numpy.array([[1, 2, 3], [4, 5, 6]])
    print(A.shape) # (2,3)
    

numpy.ndarray.reshape

  • 배열의 모양을 바꿀 수 있다.
    A = numpy.array([[1, 2, 3], [4, 5, 6]])
    print(A)
    # [[1 2 3]
    #  [4 5 6]]
    B = A.reshape((3, 2))
    print(B)
    # [[1 2]
    #  [3 4]
    #  [5 6]]
    

numpy.concatenate

  • 여러 개의 배열을 하나로 합친다
    A = numpy.array([[1, 2], [3, 4]])
    B = numpy.array([[5, 6], [7, 8]])
    C_Y = numpy.concatenate((A, B), axis = 0)
    print(C_Y)
    # [[1 2]
    #  [3 4]
    #  [5 6]
    #  [7 8]]
    C_X = numpy.concatenate((A, B), axis = 1)
    print(C_X)
    # [[1 2 5 6]
    #  [3 4 7 8]]
    

numpy.split

  • 배열을 여러 개의 크기로 나눈다
    A = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13 ,14 ,15, 16]])
    print(A)
    # [[ 1  2  3  4]
    #  [ 5  6  7  8]
    #  [ 9 10 11 12]
    #  [13 14 15 16]]
    slice_Y_equal_size = numpy.split(A, 2, axis = 0)
    print(slice_Y_equal_size[0])
    # [[1 2 3 4]
    #  [5 6 7 8]]
    print(slice_Y_equal_size[1])
    # [[ 9 10 11 12]
    #  [13 14 15 16]]
    

Numpy 기초 통계처리

numpy.sum

  • 배열에 있는 모든 원소의 합을 구한다
    A = numpy.array([1, 2, 3, 4])
    print(numpy.sum(A)) # 10
    

numpy.mean, median, std, var

  • 통계 처리시 가장 많이 쓰이는 기능 3가지
  • 데이터가 numpy.array 로 주어질 때, 데이터의 평균값, 중간값, 표준 편차, 분산 을 구할 수 있다.
    A = numpy.array([1, 2, 4, 5, 5, 7, 10, 13, 18, 21])
    print(numpy.mean(A)) # 평균 값 8.6
    print(numpy.median(A)) # 중간 값 6.0
    print(numpy.std(A)) # 표준 편차 6.43739077577
    print(numpy.var(A)) # 분산 41.44
    

numpy.ndarray.transpose

  • 전치행렬을 구한다.
    A = numpy.array([[1, 2, 3], [4, 5, 6]])
    print(A.transpose())
    # [[1 4]
    #  [2 5]
    #  [3 6]]
    

numpy.linalg.inv

  • 행렬의 역행렬을 구한다.
    A = numpy.array([[1, 2], [3, 4]])
    print(numpy.linalg.inv(A))
    # [[-2.   1. ]
    #  [ 1.5 -0.5]]
    

numpy.dot

  • 두 행렬의 곱셉, 두 벡터의 내적을 구한다.
    A = numpy.array([[1, 2, 3], [1, 2, 1]])
    B = numpy.array([[2, 1, 3], [-1, 0, 5]])
    C = numpy.dot(A, B) # Error!
    B = B.transpose()
    C = numpy.dot(A, B)
    print(C)
    # [[13 14]
    #  [ 7  4]]
    

행렬 구하는 코드

  • 아래의 코드로 숫자를 입력받아 행렬을 만들 수 있다.
    def get_matrix():
    # 1
    mat = [] # define mat variable
    
    first_line = input().strip() # receice first line
    first_line_splitted = first_line.split(" ") # split line by space " "
    n = int(first_line_splitted[0]) # convert to integer
    m = int(first_line_splitted[1]) # convert to integer
    
    for i in range(n):
      line = input().strip() # receive each line ...
      row = line.split(" ")  # ... and split
      for j in range(m):
          row[j] = int(row[j]) # convert to integer
      mat.append(row)
    
    return numpy.array(mat)
    
Advertisements

Author: Josh Jang

Mobile & Web Enthusiast, calling myself a geek. Interested in developing stuffs to make it easier for people and increasing productivity in what people have to do. True Beer Geek.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s