분류 전체보기 182

[AI class day11] 파이썬 넘파이 python numpy TIL

오늘의 감상: 그래도 git과 numpy 모두 지난 에서 강의를 들었던 과정이라 week 1의 알고리즘 week2 인공지능을 위한 수학 수업 보다는 마음 편하게 들을 수 있었다. 지난 week2에서 배운 선형대수학 개념을 numpy로 구현하는 것은 numpy 문법 보다 선형대수학에 대한 복습이 필요한 것 같다. 행렬식 sigular matrix 고유값, 고유벡터 L@ norm 1. 파이썬의 컴퓨팅 라이브러리, numpy numpy를 이용해서 데이터를 다뤄봅시다! I. Numpy 시작하기 import numpy as np II. Numpy로 연산하기 vector와 scalar 사이의 연산 벡터의 원소에 대해서 연산을 진행 x = np.array([1,2,3]) c = 5 print("더하기: {}".for..

Programming/Python 2021.05.04

filter() 리스트, 튜플 등에서 조건에 맞는 요소만 추려내는 내장함수

filter(조건 함수, 순회 가능한 데이터) 입력: 순회가능한 데이터 (리스트, 튜플), 조건함수 (파이썬 내장함수, 사용자 정의함수) 출력: filter객체 filter 는 리스트, 튜플, 셋 같은 순회 가능한 자료 타입 (iterable data type)의 원소들을 특정 함수를 통해 걸러서 출력하는 내장 함수이다. lst = [1,2,3,4,5] def over_4(x): return x > 4 list(filter(over_4, lst)) [5] 4이상의 수만 리턴하는 함수 over_4 를 정의하고, filter 내에 함수와, 리스트를 넣었더니, 함수의 조건에 해당되는 요소들만 출력되었다. 함수를 미리 정의하지 않고 람다 함수를 활용해서 한 줄에 처리할 수도 있다. list(filter(lamb..

Programming/Python 2021.05.04

.get() 딕셔너리에서 key를 사용해 value 얻기

dict_name[key] 입력 : key 출력: value 파이썬의 딕셔너리는 key, value 쌍으로 이루어진 해시형 자료구조이다. john = {'phone': '01840125784' , 'birthday': '19930512' , 'e-mail': 'johndoe@gmail.com' } 특정 key 값에 있는 value를 호출하고 있으면, dict_name[key] 를 사용하는데, dict_name.get(key)를 써도 똑같은 값을 return 한다. print(john['phone']) print(john.get('phone')) >> '01840125784' '01840125784' 둘의 차이점은 딕셔너리에 없는 key 값으로 호출할 때 있다. dict_name[key] 는 KeyErro..

Programming/Python 2021.05.04

numpy, pandas 연습 문제 링크

프로그래머스 AI 수업 멘토님이 추천해주신, numpy, pandas 연습 문제들을 모아놓은 링크 넘파이와 판다스 각각 101 문제씩 있고, 1번은 그냥 프린트 찍어라 수준의 아주 아주 쉬운 문제이기 때문에 쭉 아래로 훑어 가면서 보다가 '가물가물하다' 싶은 부분부터 보면서 연습문제를 풀어보면 좋을 것 같다. www.machinelearningplus.com/python/101-numpy-exercises-python/ 101 Numpy Exercises for Data Analysis The goal of the numpy exercises is to serve as a reference as well as to get you to apply numpy beyond the basics. The ques..

Data/Pandas 2021.05.03

[AI class day10] 인공지능 수학- 추정, 검정, 엔트로피 TIL

1. 표본분포 통계적 추론 전수조사는 실질적으로 불가능하기에 표본 조사를 통해 모집단 해석을 진행하는 경우가 많다. -> 표본 조사는 반드시 오차가 발생 -> 적절한 표본 추출 방법 필요 -> 표본과 모집단과의 관계를 이해해야 함 여러 표본 추출 방법 단순랜덤 추출법 (random sampling) : 난수표 사용 / 랜덤넘버 생성기 사용 import random [random.randint(1,10)for i in range(10)] 1~10 사이에서 랜덤하게 정수 10개 뽑는 코드 표본 평균의 분포 표본조사를 통해 파악하고자 하는 정보: 모수 (parameter) 모수의 종류: 모평균, 모분산, 모비율 등 모수 추정을 위해 표본을 선택하여 표본 평균, 표본 분산 등을 계산하는 것 통계량 (statis..

Math 2021.05.03

프로그래머스 코딩테스트 lv 1. 완주하지 못한 선수 문제 풀이

문제 완주하지 못한 선수 생각 과정 입력 : 참여자 명단 리스트 / 완료자 명단 리스트 출력: 완주하지 못한 선수 문자열 주어진 조건에 의하면 단 한 명만 완주하지 않았기 때문에 참여자 명단 리스트에서 완료자 명단 리스트와 똑같은 것을 다 빼주면, 남는 1명을 찾으면 된다. 그런데 제한사항에서 참여자 리스트가 최대 10만 까지 가기 때문에 그냥 리스트를 for 반복문으로 계산하면 너무 오래 걸린다. 그리고 참여자의 이름에는 동명이인이 있다. 훨씬 속도가 빠른 딕셔너리로 {'사람이름' : '참가한 수'} 형태의 자료구조를 만들고, 완주자 리스트에 있으면 '참가한 수' 에서 한 명씩 빼주자. 제출 답안 def solution(participant, completion): par = {} #참여자 딕셔너리 만..

[AI class day 9] 인공지능 수학- 확률과 확률분포 TIL

1. 확률 1. (최근) 상대도수에 의한 확률 정의: 똑같은 실험을 무수히 많이 반복할 때 어떤 일이 일어나는 비율 (상대 도수의 극한) ex> 다음 날 비가 올 확률? 2 고전적 정의 : 표본공간(sample space) 모든 가능한 실험결과들의 집합 예) 주사위의 숫자 : {1,2,3,4,5,6} 사건 관심있는 실험결과들의 집합 표본 공간의 부분집합 예) 주사위의 숫자 중 짝수 : {2,4,6} 어떤 사건이 일어날 확률 표본 공간의 모든 원소가 일어날 확률이 같은 경우 사건의 원소의 수 / 표본공간의 원소의 수 ex> 주사위를 2번 던졌을 때 합이 10일 확률을 구하라 표본공간: 총 36개의 원소: {(1,1),(1,2),(1,3)...(6,6)} 합이 10일 사건: {(4,6), (5,5), (6,..

Math 2021.04.29

프로그래머스 코딩테스트 lv 1. 모의고사 문제 풀이

문제 : lv 1 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 입력 : 정답이 순서대로 들어있는 배열 answers 출력 : 가장 많은 정답을 맞힌 사람이 담긴 배열 answer 생각의 과정 세 사람은 아래의 배열이 계속 반복되는 방식으로 답을 입력한다. first = [1,2,3,4,5] second = [2,1,2,3,2,4,2,5] third = [3,3,1,1,2,2,4,4,5,5] 생각할 지점이 2개 있었다. 1. 문제의 갯수가 세 사람의 입력 배열보다 훨씬 길어지면 어떻게 할 것인가? 응답자 리..

[AI class day 8] 인공지능 수학- 자료의 정리 TIL

1. 벡터와 직교 분해 1) 벡터의 표현 n-벡터는 크기와 방향을 가진 물리량, 표현 방법 2가지 1. 좌표계 없이 표현 v : 화살표로 표현 v의 크기 : 화살표의 길이 측정 v의 방향 : 화살표의 방향 측정 2. 좌표계를 도입하여 표현 v = (v1, v2, ..., vn) v의 크기 : |v| = sqrt(v1^2 + v2^2 + ... + vn^2) v의 방향 : 1/|v|*v (주어진 벡터에서 길이를 나누어서 길이를 1로 만들면 방향이 남는다) 2) 벡터의 내적 두 벡터 u 와 v에 대한 내적 (inner product / dot product)의 정의 1. 좌표계 없이 표현 두 n-벡터의 길이와 두 벡터 간 사이각 θ를 통해 정의 가능 u ⋅v = |u||v|cosθ 2. 좌표계 도입하여 표현..

Math 2021.04.28

[AI class day 7] 인공지능 수학- 미적분 TIL

1. LU 분해(LU decomposition) LU분해는 지금까지 배운 가우스 소거법을 알고리즘의 형태가 아닌 행렬의 결과물로 표현하는 방식 가우스 소거법을 프로그래밍적으로 지원하는 알고리즘이 존재 numpy는 LU분해라는 방식으로 제공 1) 행렬분해(matrix decomposition)의 의미 어떤 숫자를 인수분해 한 상태로 가지고 있으면 계산이 편한 경우 많음 ex> 분수의 약분, 최대공약수, 최소공배수... 행렬도 행렬분해한 상태로 가지고 있으면 계산이 편한 경우가 많음 행렬분해의 종류 LU 분해(LU decomposition) QR 분해(QR decomposition) 특이값 분해(SVD, Singular Value decomposition) LU분해는 가우스 소거법을 행렬의 형태로 나타낸 것..

Math 2021.04.27

map() - 리스트, 튜플 등에서의 각 요소를 지정된 함수로 처리해주는 내장함수

map(조건함수, 순회 가능한 데이터) 입력: 순회가능한 데이터 (리스트, 튜플), 조건함수 (파이썬 내장함수, 사용자 정의함수) 출력: map객체 리스트의 요소들인 숫자들을 문자열로 바꾼 새로운 리스트를 만들고 싶으면 어떻게 해야할까? for 문을 이용해 아이템 하나씩 바꿀 수도 있지만 너무 번거롭다. lst = [3, 6, 8, 2, 3] str_lst = [] for i in range(len(lst)): str_lst.append(str(lst[i])) str_lst >> ['3', '6', '8', '2', '3'] map() 을 쓰면 지정된 함수를 리스트 각 요소에 한꺼번에 적용해준다. lst = [3, 6, 8, 2, 3] str_lst = list(map(str, lst)) str_lst ..

Programming/Python 2021.04.26

set() - from list to set 리스트를 해시형 데이터 타입인 셋으로 변환하기

set 은 집합 자료형이다. 집합 연산을 쉽게 할 수 있다. 리스트를 셋으로 만들어 주면 데이터 타입이 1)해시형 데이터 타입 셋으로 바뀌면서 2)중복을 제거하고 3)정렬해준다. l = [1,2,3,4,5,1] ls= set(l) ls >> {1, 2, 3, 4, 5} 이와 같은 특징 때문에 중복을 제거하고 싶거나 정렬을 계속 해줘야 할 때 set 자료형을 활용한다. 리스트 말고 문자열도 set()으로 셋으로 만들어 줄 수 있다. s = "Hello" ss = set(s) ss >> {'H', 'e', 'l', 'o'} 정렬하고, 중복을 제거하는데, 대문자가 우선한다. 근데 리스트의 원소도 리스트면 set 변환이 되지 않고 type 에러가 난다. ll = [[1,1],[2,1],[1,2],[3,4],[2..

Programming/Python 2021.04.26

[AI class day 6] 인공지능 수학- 선형대수Linear Algebra TIL

* 첫 째 주에 이어 다시 고난의 행군 SSAC x Fast Campus 패스트 캠퍼스 비즈니스 빅데이터 분석가 과정 에도 수학 이론 강의가 있었지만, 단 라는 이름으로 이틀 강의를 한 것이 전부였다. 게다가 문과생들을 대상으로 하는 수업 난이도였다. 그런데 이 수업은 CS 학부생 정도 수준을 전제로 하고 있는 것 같다. 첫 날 주제는 선형대수linear algebra 다행히 빅데이터 분석가 과정에서도 하룻동안 배웠던 내용이다. 여담이지만, 학부에 있을 때 이과인 친구들이 '리니어 알제브라', '리니어 알제브라' 거리길래 뭔소리인지 몰라서 사전을 찾아본 적이 있었는데, 그걸 내가 이 나이에 공부하고 있다니... 그땐 이렇게 될 줄은 꿈에도 몰랐었지 .... ㅠㅠ 참고 첫째 주에 자료 구조와 알고리즘을 공..

Math 2021.04.26