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

함수와 변수


#함수
def subtract(a,b):    
#2 subtract(a,b) = a-b
	return a-b
print(subtract(1, 10))

#변수
hello = "hello"
world = "world"
helloworld = hello + " " + world

print(helloworld)



리스트와 튜플

#리스트
def exercise(my_language):
    # 1
    programming_languages = ["C#", "Javascript","Java","Python","Matlab","R"]
    # 2
    del programming_languages[1] #Javascript 를 리스트에서 삭제
    # 3
    programming_languages.append("C++") #C++ 을 리스트의 끝에 추가
    # 4
    is_my_language = (my_language in programming_languages) 

    return is_my_language

print(exercise("R"))

#튜플
def exercise(my_language):
    # 1
    programming_languages = ("C#","Javascript","Java","Python","Matlab","R")
    # 2
    programming_languages = (programming_languages[2:5]) # Java부터 Matlab까지 3개의 원소만을 가지는 새로운 튜플을 만들고 다시할당
    # 3
    new_programming_languages = ("Swift","Go")
    # 4
    programming_languages = programming_languages + new_programming_languages 
    # 5
    is_my_language = (my_language in programming_languages)

    return is_my_language

print(exercise('R'))


딕셔너리

def exercise(my_language):
    # 1
    programming_languages_popularity = {
        'Java': 24.0,
        'Python':13.2,
        'PHP':10.4,
        'C#':9.0
    }
    # 2
    del programming_languages_popularity['PHP']
    programming_languages_popularity['Javascript'] = 7.6
    programming_languages_popularity['C++'] = 7.0
    # 3
    my_language_popularity = programming_languages_popularity[my_language]
    
    return my_language_popularity

print(exercise('Python'))


조건문과 반복문

def exercise(score):
    # 1
    if score < 50: 
        evaluation = "Below average"
    elif score < 70: 
        evaluation = "Average"
    elif score < 90: 
        evaluation = "Above average"
    else : 
        evaluation = "Excellent"
    return evaluation

print(exercise(80))


def exercise(big_list):
    # 1
    small_list = []
    # 2
    for big_list in big_list:
        small_list.append(big_list.lower()) #small_list 에 big_list 에 있는 모든 문자열들을 소문자화
           
        
    return small_list

print(exercise(['C#', 'JAVASCRIPT', 'JAVA', 'PYTHON', 'MATLAB', 'R']))



함수구현

#1
def sum_even_numbers(start, end):
#2
    sum_even = 0
    for x in range(start,end+1):
        if x % 2 == 0:
            sum_even += x          #start <= x <= end 인 모든 x 에 대해, 짝수인 x 를 모두 더한 값을 리턴
            
    return sum_even
        
print(sum_even_numbers(1, 10))


'python' 카테고리의 다른 글

2. Numpy 사용하기  (312) 2016.08.26
[강의] 파이썬  (5) 2016.02.01

강의목록

1 파이썬 시작하기

2 파이썬 언어의 기본 문형

3 수치형 자료형, 문자열 자료형

4 리스트, 튜플, 사전 및 내장 자료형 특성

5 파이썬의 각종 연산자

6 제어문과 함수 기초

7 문자열 정의 및 기초 연산

8 문자열 메소드 와 포멧팅

9 리스트의 기초

10 리스트의 활용

11 튜플과 집합

12 사전

13 파일 입출력

14 파일과 디렉토리 다루기

15 파이썬 함수

16 람다 함수

17 파이썬 모듈

18 모듈의 활용과 패키지

19 클래스와 객체

20 클래스와 연산자 중복 정의

21 상속과 다형성

22 약한 참조, 반복자, 발생자

23 예외 처리





참고문헌

1) 문헌

  - 주교재: 이강성, 파이썬(열혈강의) (개정판 VER.2), FreeLec, 2005년
  - 부교재: 제이슨 R. 브리그스 (황반석, 이상훈 옮김), 누구나 쉽게 배우는 파이썬 프로그래밍, 비제이퍼블릭, 2013년 
 

2) 관련 사이트 
    - 한국기술교육대학교 컴퓨터공학부 스크립트 프로그래밍 교과목 홈페이지
      http://link.koreatech.ac.kr/courses2/SPE/syllabus.html

'python' 카테고리의 다른 글

2. Numpy 사용하기  (312) 2016.08.26
1. 파이썬 기본 자료구조  (972) 2016.08.26