본문 바로가기

프로그래밍/Python

(96)
[Anaconda] conda install 과 pip install 은 똑같은 걸까? 일전에 아나콘다에서의 패키지 설치라는 포스팅을 하였다. 아나콘다에서는 되도록 pip install 보다는 conda install 을 사용하고, 부득이하게 pip install 을 사용해야 하는 조건, pip 의 사용했을 때 이후의 관리에 대해 내가 지키고 있는 원칙을 썼다. 아나콘다에서는 pip 보다 conda 로 패키지를 관리하는 편이 좋다. conda 가 pip보다 패키지 의존성을 더 잘 관리해 주고, pip 에서는 미리빌드된 패키지가 아닌 소스 패키지가 내려와서 cpp 빌드를 시도하다가 에러가 발생하는 경우도 가끔 있는데, 아나콘다의 conda 패키지는 운영체제 플랫폼에 맞추어 미리 빌드된 패키지들이 깔리기 때문에, cpp 빌드 환경설정이 필요 없기 때문이다. (그렇다, pip와 conda 로 인..
[통계학|scipy] 정규분포 모집단의 표본분산의 분포는 정말 카이제곱분포를 따를까 카이제곱 분포(χ2 분포)는 정규분포를 따르는 모집단에서 k개의 샘플을 뽑았을 때의 샘플의 분산의 분포가 된다고 한다. 이게 정말 그런가 궁금해서, python scipy.stats 을 이용해서 실험을 해 보았다. (첫 문장에서 분산의 분포라고 했지만, 사실 제곱합의 분포다. 평균이 0인 확률변수의 분산은 결국 제곱합/k 일 뿐이니까 이렇게 퉁치자.) import numpy as np import pandas as pd import scipy as sc import scipy.stats import seaborn as sns import matplotlib.pyplot as plt dist = scipy.stats.norm() def plot_chisq(df, ax): x = np.linspace(0, ..
[통계학|Scipy] scipy 로 정규분포 그래프 + 구간확률 구하기. 문제 : 모평균이 50.2이고 모분산이 48인 어떤 모집단으로부터 크기가 100인 표본이 임의추출되었다고 할 때 표본평균이 47에서 51 사이에 있을 확률을 구해보자. scipy.stats 에 보면, norm 이라는 클래스가 있다. 정규분포를 다룰 수 있는 클래스를 만들어준다. 정규분포는 평균과 표준편차 두 수치로 결정된다. norm 클래스 생성자 인자도 이 두개. 문제에서 표분평균의 표본분산은 모분사/표본크기 이고, 중심극한정리에 따라 정규분포를 따른다. N(x, m=502, sig^2=48/100) 을 구하면 된다. 구간의 확률은 norm 클래스의 cdf 함수의 차로 구할 수 있다. import numpy as np import matplotlib.pyplot as plt import scipy as..
윈도우용 파이썬 3.8 버전에서 pip install kivy 로 설치가 안 된다. 2020년 12월 9일 kivy 로 android 개발을 할 수 있다는 이야기를 들어서, kivy 를 한번 설치해 보았다. 그런데, pip install kivy 를 실행하였더니 엄청난 에러와 함께 설치가 실패했다. 환경은 : windows 10, python 3.8 64 bit, venv 로 만들어 놓은 가상환경.위 내 (v3864) C:\PYENVS>pip install kivy Collecting kivy Using cached Kivy-1.11.1.tar.gz (23.6 MB) ERROR: Command errored out with exit status 1: command: 'c:\pyenvs\v3864\scripts\python.exe' -c 'import sys, setuptools, tok..
[Python] 윈도우 cmd 창에서 python 을 입력하면 윈도우 스토어 설치화면이 나온다. python 을 실행하기 위해서 cmd 창 (명령창, 콘솔창)에서 python ... 을 입력하였는데, 파이썬이 실행되지 않고 윈도우 스토어가 열리면서 python 설치유도 화면이 뜨는 경우가 있다. python 을 이미 설치했는데도 이렇게 뜬다면, 윈도우 운영체제가 python.exe 를 찾지 못해서, 윈도우 스토어의 python 설치화면을 띄운 것이다. python 을 설치하면서, python 의 설치패쓰를 PATH 환경변수에 등록하는 설정을 하고 설치하였다면, 이와 같은 문제가 생기지 않는다. 윈도우 cmd 는 사용자가 입력한 명령을 실행할 실제 실행파일을 찾기 위해서 PATH 변수에 등록된 경로들을 주르륵 탐색한다. python 이라고 입력했다면, python.exe, python.bat, .....
[Python] 분수의 무제한 소수표현 구하기 분수의 십진수 소수 표현을 자릿수 제한없이 구하는 함수. from typing import List, Tuple def get_div_decimals(n: int, m: int = 1, limit: int = 0) -> Tuple[int, List[int], List[int]]: q = m // n m = (m % n) * 10 dividend = m dividend_list = [] digit_list = [] while True: # print(digit_lst) if dividend in dividend_list: break dividend_list.append(dividend) digit = dividend // n dividend = (dividend % n) * 10 digit_list.app..
[Python] Turtle 로 프랙탈 트리 그리기 python turtle 로 프랙탈 트리를 그려 봤다. import turtle def tree(length, depth=0): if depth < 4: depth += 1 nlength = length * (0.7 ** depth) t.forward(length) t.left(60) tree(nlength, depth) t.right(30) tree(nlength, depth) t.right(30) tree(nlength, depth) t.right(30) tree(nlength, depth) t.right(30) tree(nlength, depth) t.left(60) t.backward(length) t = turtle.Turtle() t.left(90) t.color("green") t.speed..
[파이썬] No module named 'setuptools.py33compat' python 3.8 가상환경에서 잘 동작하는 파이썬 스크립트를 pyinstaller 로 exe로 변환하였다. 실행하였는데, 에러가 발생하며 실행이 중단되었다. ModuleNotFoundError: No module named 'setuptools.py33compat' 빌드한 가상환경에서 setuptools 의 버전을 확인해 보았다. > pip list ... setuptools 40.8.0 ... setuptools 가 (2020년 11월 기준) 꽤 오래된 버전이었다. setuptools 를 최신으로 업데이트(50.3.2)하고, 다시 빌드하여 문제가 없이 실행되었다. 같은 환경에서 스크립트로 실행했을 때와, pyinstaller 로 실행하였을 때의 차이가 무엇인지는 잘 모르겠다. setuptools 업데..