본문 바로가기

파이썬23

PIP와 virtualenv, venv PIP 파이썬의 개발 환경에서 패키지 라이브러리를 설치하기 위해서 pip 명령을 사용해왔는데 정확히 무슨 뜻일까? Python Package Index(PyPI) 저장소로부터 파이썬으로 작성된 각종 라이브러리를 설치하고 관리해주는 도구이다. 우분투의 apt-get, CentOS의 yum과 같은 존재라고 생각하면 된다. 💻 pip 사용 pip는 자주 업데이트되므로 가상환경에서 최신 버전의 pip로 업그레이드해주는 것이 좋다. 1.1 pip 업그레이드, 버전 확인 pip install --upgrade pip pip --version 특정 라이브러리를 설치하고 난 후, WARNING 문구가 뜬 것을 볼 수 있다. pip를 업그레이드하라는 것! 1.2 pip 패키지 설치 및 업그레이드 pip install 패.. 2022. 1. 5.
Django(장고) 웹 프레임워크 구조 참고 https://docs.djangoproject.com 장고는 웹 사이트를 설계할 때 애플리케이션 프로그램들이 모여서 프로젝트를 개발하는 개념이다. 우리가 흔히 아는 네이버, 당근 마켓 앱 등은 장고에서 프로젝트로 불릴 것이다. 프로젝트(Project): 웹 사이트 자체(당근마켓 App 그 자체) 애플리케이션(App): 프로젝트 내의 모듈화된 단위 프로그램(당근마켓 앱 내의 로그인 기능, 게시판 기능 등) MVT 패턴 웹 개발 시 언급되는 MVC패턴은 데이터(Model), 사용자 인터페이스(View), 데이터 처리 로직(Controller)에 대한 코딩을 분리해서 독립적으로 개발 할 수 있는 설계 방식이다. 장고 프레임워크에서 View는 Template, Controller는 View라고 표현하며,.. 2022. 1. 3.
로그(log), 로깅(logging) 파이썬으로 코드를 작성할 때마다 어디서 오류가 났는지 항상 print 구문으로 디버깅을 했었다. 코드가 길어질수록 print() 문을 삭제하고 주석처리하는... 노가다를 반복하다가 뒤늦게 로깅을 알게 되었다. print() 구문보다 어려워보이지만? 익숙해지면 쉽다. 익혀보자. * 참고 https://docs.python.org/ko/3/library/logging.html# Django로 배우는 쉽고 빠른 웹 개발, 김석훈 한빛 미디어 로깅(logging) 로그(log)를 기록하는 행위를 말한다. 로그(log): 📜통나무 파일 과거 항해일지를 통나무에 기록했다하여 log(book)의 개념이 나왔는데, 컴퓨터 영역에도 이 개념이 확장되면서 운영 체제나 소프트웨어 실행 중 발생하는 정보 전반을 기록한 파일을.. 2021. 12. 30.
urllib 패키지, requests 차이 파이썬 urllib, requests 차이 파이썬에서 웹 클라이언트(HTTP 요청 등)를 개발하기 위해 주로 파이썬 기본 패키지 urllib을 사용해왔다. 최근에는 사용자 친화적인 문법을 사용하여 다루기 쉽고 안정성이 뛰어난 requests 패키지를 더 많이 쓴다. 참조: https://docs.python-requests.org/en/master/user/quickstart/ 기본 패키지가 아니므로, pip install을 통해 패키지 설치 pip install requests 1) 요청하기 urllib 패키지의 get 요청 import urllib.request response = urllib.request.urlopen('https://bentist.tistory.com/') requests 패키지.. 2021. 12. 27.
웹 클라이언트 라이브러리, 웹 클라이언트 개발 먼저 클라이언트는 전문가에게 필요한 서비스를 요청하는 고객을 뜻한다. 웹 클라이언트는? 웹 클라이언트는 웹 서버에게 필요한 데이터(웹 페이지, 사진, 동영상)를 요청하는 프로그램이다. 즉, 웹 서버에 요청을 보내는 애플리케이션(프로그램)은 모두 웹 클라이언트라고 할 수 있다. 우리가 가장 많이 사용하는 웹 클라이언트에는 웹 브라우저(구글 크롬, 엣지, 익스플로러)가 있고, 웹 브라우저 이외에도 웹 클라이언트를 개발해서 사용하는 경우도 많다. 예로 기상청의 날씨 API를 활용해서 만든 날씨 정보 앱도 웹 클라이언트라고 볼 수 있다. 파이썬은 이런 웹 클라이언트를 만들 수 있도록 여러가지 표준 라이브러리를 제공하고 있다. 표준 라이브러리 중 urllib 패키지는 웹 클라이언트를 개발하는데 주로 사용한다. 표.. 2021. 12. 24.
실습) 행렬 norm이란? 배워서 어디다 쓰게? Norm (위키백과 정의) : 벡터의 길이 혹은 벡터의 크기를 나타낸다. 이를 행렬로 확장하면 다음의 식으로 정의된다. 쉽게 말해서 행렬에서 크기를 구하는 방법 중 하나라고 생각하면 된다. 보통 p값으로 1 또는 2(프로베니우스 놈)을 가장 많이 사용하므로, 수식을 정의 한 뒤 실습을 진행해보겠다. p = 1인 놈을 보통 L1 Norm, p = 2인 놈은 L2 Norm으로 쓴다. L2 Norm은 우리가 알고 있는 Euclidean Norm라고도 부르며, 두 점의 거리를 구할 때 제곱한 것을 다 더해서 루트를 씌워주었던 바로 그것이다. 프로베니우스 놈(Frobenius norm)은 vector L2 Norm을 행렬로 확장한 버전이다. L1 Norm: 절대값의 합 L2 Norm: 원점과의 거리(피타고라스 정.. 2020. 3. 12.
보충) numpy로 푸는 선형방정식, 행렬식 numpy의 linalg 서브패키지의 solve를 활용하여 선형 연립방정식을 풀어보자. ex) 2x + 3y = 1 x - 2y = 4 를 만족하는 x, y는 무엇인가? 행렬식 (위키백과 정의) : 선형대수학에서, 행렬식은 정사각행렬에 수를 대응시키는 함수의 하나이다. det(A) 로 정의하며, 연립 방정식이 해를 가지는지 아닌지를 결정하는 데 사용된다. 행렬 norm 참고 영상: https://www.youtube.com/watch?v=o44YKdEH8a0 2020. 3. 12.
[1단계] 2016년 [1단계] '2016년' 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 문제 풀이 def solution(a, b): day = ['FRI','SAT','SUN','MON','TUE','WED','THU'] month = [31.. 2020. 3. 9.
2.2) Numpy로 공부하는 선형대수(행렬, 텐서, 전치연산) * 본 포스팅은 김도형의 데이터사이언스 스쿨(수학편)을 읽고 썼으며, 책에서 설명이 부족한 부분은 따로 보충했습니다. 행렬: 복수의 차원을 가지는 데이터 레코드를 합쳐서 표기한 것. (데이터 레코드의 모음집)ex. 한 송이의 붗꽃이 4차원 벡터(데이터 수가 4개)라면, 아래의 행렬은 6송이의 붗꽃 데이터를 표기한 것과 같다. 데이터를 행렬로 묶어서 표시할 때는 붗꽃 하나에 대한 데이터 레코드, 즉 하나의 벡터가 열이 아닌 행으로 표시하나의 데이터 레코드를 단독으로 벡터로 나타낼 때는 하나의 열로 나타내고, 복수의 데이터 레코드 집합을 행렬로 나타낼 때는 하나의 데이터 레코드가 하나의 행으로 표기된다. 텐서: 데이터 사이언스 분야에서 다차원 배열을 텐서라고 부른다. 같은 크기의 행렬이 여러 개 묶여 있는 .. 2020. 3. 7.
2.1) Numpy로 공부하는 선형대수 * 김도형의 데이터사이언스 스쿨(수학편)을 토대로 작성했으며, 책에서 설명이 부족한 부분은 따로 보충했습니다. 선형대수의 데이터 유형: 스칼라, 벡터, 행렬, 텐서 스칼라: 숫자 하나만으로 이루어진 데이터 벡터: 여러 숫자가 특정한 순서대로 모여 있는 것, 한 송이의 붗꽃에서 나온 4가지 특징 데이터의 묶음 특징 벡터: 데이터 벡터가 예측 문제에서 입력 데이터로 사용되면 특징 벡터라고 한다. [numpy를 사용한 벡터 표현] 1) 넘파이를 사용하여 벡터를 표현할 때는 2차원 배열 객체로 표현한다. 대괄호 2개를 이용하여 행렬의 형태로 만드는 것이다. 데이터는 항상 (n_samples, n_features) 의 구조를 가진 2D 배열. 아래 코드는 (4, 1) 행렬 * 벡터는 열의 수가 1인 행렬이라고 볼.. 2020. 3. 5.
[1단계] '제일 작은 수 제거하기' [1단계] '제일 작은 수 제거하기' 문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. arr return [4,3,2,1] [4,3,2] [10] [-1] 문제 풀이 1) 배열이 빈 배열이거나 1개일 경우, -1을 리턴하는 코드를 작성 if len(arr) == 0 or len(arr) == 1 : return [-1] 2) ar.. 2020. 3. 5.