Numpy 시작하기

import numpy

def matrix_tutorial():
    # 3×4 의 크기를 가진 2차원 배열 선언
    A = numpy.array([[1,4,5,8],
                     [2,1,7,3],
                     [5,4,5,9]])
    return A

print(matrix_tutorial())



행렬변환


import numpy

def matrix_tutorial():
    A = numpy.array([[1,4,5,8], [2,1,7,3], [5,4,5,9]])

    # 1 A의 shape을 (3, 4)에서 (6, 2)로 변환
    B = A.reshape((6,2))
    # 2 B 밑에 행렬추가
    B = numpy.concatenate((B,[[2,2],[5,3]]), axis = 0)
    # 3 길이가 늘어난 B를 세로로 두 개로 쪼개고, 위-아래 순서대로 저장
    C = numpy.split(B, 2, axis = 0)[0]
    D = numpy.split(B, 2, axis = 0)[1]
    # 4 C와 D를 가로로 붙여 E생성
    E = numpy.concatenate((C,D), axis=1)
    # 5
    return E

print(matrix_tutorial())




기초통계처리

import numpy

def matrix_tutorial():
    A = numpy.array([[1,4,5,8], [2,1,7,3], [5,4,5,9]])
    B = A.reshape((6, 2))
    B = numpy.concatenate((B, numpy.array([[2, 2], [5, 3]])), axis = 0)
    (C, D) = numpy.split(B, 2, axis = 0)
    E = numpy.concatenate((C, D), axis = 1)

    # 1 E를 normalize(표준화)해 E안의 모든 원소 합이 1이되도록 함
    E = E / numpy.sum(E)
    # 2 E의 분산
    variance = numpy.var(E)
    return variance

print(matrix_tutorial())


행렬데이터 입력 및 출력

import numpy

def matrix_tutorial(A):

    # 2 A의 전치행렬 (transpose) B 를 생성
    B = A.transpose()

    try:
        #3 - 1 B의 역행렬을 구하여 C로 저장
        C = numpy.linalg.inv(B)
    except:
        #3 - 2 역행렬을 구하는 것이 불가능하다면 not invertible 을 리턴
        return "not invertible"

    # 4 C 안에 들어있는 0보다 큰 원소 (positive) 들의 개수를 리턴합니다.
    return numpy.sum(C > 0)

def get_matrix():
    # 텍스트 입력을 통해 행렬을 입력받아 A로 저장
    mat = [] # define mat variable

    first_line = input().strip() # receive 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)

if __name__ == "__main__":
    A = get_matrix()
    print(matrix_tutorial(A))




선형회귀법: X,Y 입력받기


import numpy

def main():
    (N, X, Y) = read_data()
    print(N)
    print(X)
    print(Y)

    
    
def read_data():
#입력       출력
#3          3
#1 5.1      [1.0, 1.7, 3.0]
#1.7 8      [5.1, 8.0, 10.4]
#3 10.4
    N = int(input())
    X = []
    Y = []
    for i in range(N) :
        line = input().strip().split(" ")
        X.append(float(line[0]))
        Y.append(float(line[1]))
    return (N, X, Y)

if __name__ == "__main__":
    main()





'python' 카테고리의 다른 글

1. 파이썬 기본 자료구조  (972) 2016.08.26
[강의] 파이썬  (5) 2016.02.01