동현 유
척척석사
동현 유
전체 방문자
오늘
어제
  • 분류 전체보기 (181)
    • BlockChain (48)
      • [paper] Consensus (13)
      • [paper] Execution (19)
      • [paper] Storage (5)
      • [paper] ZKP (1)
      • [paper] Oracle (1)
      • Blockchains (9)
    • Java (19)
      • Java의 정석 (13)
      • Java 파헤치기 (5)
    • Python (20)
      • Python 뜯어보기 (6)
      • 데이터 분석 기초 (5)
      • Python 기초 강의 (6)
      • Python 기초 강의 부록 (3)
    • Golang (0)
    • MySQL (3)
      • programmers (2)
      • 기본 문법 (0)
    • 웹 프로젝트 (IBAS) (36)
      • Django 레거시 (14)
      • SpringBoot api 개편 (14)
      • Infra (3)
      • 서버 장애 기록 (4)
      • 신입팀원 교육 자료 (1)
    • CS (30)
      • Operating System (22)
      • Computer Security (3)
      • Network (4)
      • DBMS (1)
    • 책 (10)
      • 도메인 주도 설계 철저 입문 (9)
      • Real MySQL 8.0 (1)
    • BOJ 문제 풀이 (3)
    • 이러쿵저러쿵 (10)
    • 회고 (1)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
동현 유

척척석사

Python/데이터 분석 기초

[머신러닝을 위한 파이썬] 1.행렬 연산 구현해보기

2021. 3. 18. 19:23

이 글은 boostcourse 강의를 듣고 정리한 글입니다.

 

 

밑에 나오는 구현 예제들은 모두 한줄로 작성이 가능하다!

( 과연 한 줄로 코드를 작성하는 게 더 좋을까...? )

 

 

>>완벽하게 알아야 할 자료구조

  • 리스트
  • 튜플
  • 딕셔너리

 

 

>> 공부해야 할 문법들

  • List Comprehension / Generator
  • Enumerate
  • Zip
  • Lambda
  • Map
  • Asterisk

 

예제는 여기서 확인하자

 

 

>>파이썬 답안 코드

MatirxOperation.zip
0.00MB

#1. 

def vector_size_check(*vector_variables):

    return len(set([ len(vector)  for vector in vector_variables])) == 1

 

#2.

def vector_addition(*vector_variables):

    if vector_size_check(*vector_variables) == False:
        raise ArithmeticError
        
    return [sum(i) for i in zip(*vector_variables)]

 

#3.

def vector_subtraction(*vector_variables):

    if vector_size_check(*vector_variables) == False:
        raise ArithmeticError
        
    return [i[0]*2 - sum(i) for i in zip(*vector_variables)]

 

#4.

def scalar_vector_product(alpha, vector_variable):

    return list(map(lambda x : x * alpha, vector_variable))

 

#5.

def matrix_size_check(*matrix_variables):

    return len(set((len(mat),len(mat[0])) for mat in matrix_variables)) == 1    

 

#6.

def is_matrix_equal(*matrix_variables):

    return all(len(set(row for row in zip(*matrix)))==1 for matrix in zip(*matrix_variables))

 

#7.

def matrix_addition(*matrix_variables):

    if matrix_size_check(*matrix_variables) == False:
        raise ArithmeticError
        
    return [[sum(i) for i in zip(*row)] for row in zip(*matrix_variables)]
    #return [vector_addition(*row) for row in zip(*matrix_variables)]

 

#8.

def matrix_subtraction(*matrix_variables):

    if matrix_size_check(*matrix_variables) == False:
        raise ArithmeticError
        
    return [vector_subtraction(*row) for row in zip(*matrix_variables)]

 

#9.

def matrix_transpose(matrix_variable):

    return [[*i] for i in zip(*matrix_variable)]

 

#10.

def scalar_matrix_product(alpha, matrix_variable):

    return [scalar_vector_product(alpha,row) for row in matrix_variable]

 

#11.

def is_product_availability_matrix(matrix_a, matrix_b):

    return len(matrix_a[0]) == len(matrix_b)

 

#12.

def matrix_product(matrix_a, matrix_b):

    if is_product_availability_matrix(matrix_a, matrix_b) == False:
        raise ArithmeticError
        
    return [[sum(x*y for x,y in zip(row_a,col_b)) for col_b in zip(*matrix_b)] for row_a in matrix_a]

'Python > 데이터 분석 기초' 카테고리의 다른 글

Kaggle - [House Prices] 집값 예측 모델링 후기  (0) 2021.06.06
Multiple Linear Regression 정리 + 느낌  (0) 2021.03.29
[머신러닝을 위한 파이썬] 3. pandas 활용 예제  (0) 2021.03.18
[머신러닝을 위한 파이썬] 2. numpy 활용 예제  (0) 2021.03.18
    동현 유
    동현 유
    Fault Tolerant System Researcher for more Trustful World and Better Lives. (LinkedIn: https://www.linkedin.com/in/donghyeon-ryu-526b8a276/)

    티스토리툴바