반응형
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. 파이썬 기본 자료구조 (0) | 2016.08.26 |
---|---|
[강의] 파이썬 (0) | 2016.02.01 |