python | 파이썬에서 순열과 조합 사용하기
·
TIL/python
파이썬에서 순열과 조합을 사용할 수 있는 두 가지 방법을 정리해보려 한다. 먼저, 순열과 조합의 정의를 살펴보면 다음과 같다 순열(permutation): n개 중 r개를 선택하여 순서대로 정렬 ex) 1, 2, 3에서 2개를 선택하여 순서대로 정렬 → (1, 2), (2, 3), (3, 1) (1, 2)와 (2, 1)을 같은 것으로 봄 $_nP_r=\frac{(n-r)!}{n!}$ 조합(combination): n개 중 r개를 선택 (순서 X) ex) 1, 2, 3 에서 2개를 선택 → (1, 2), (2, 1), (2, 3), (3, 2), (1, 3), (3, 1) (1, 2)와 (2, 1)을 다른 것으로 봄 $_nC_r=\frac{(n!}{(n-r)! r!}$ 1) math 라이브러리에 있는 pe..
pandas | Series와 Dataframe에서 Broadcasting
·
TIL/python
다음과 같은 dataframe과 series가 있다. 이 예시는 dataframe의 columns와 Series의 index가 a, b, c, d로 같은 경우이다. df=DataFrame(np.arange(16).reshape(4,4), columns=list('abcd')) df s=Series(range(10,14),index=list('abcd')) s 이때, df와 s를 + 연산을 사용한 결과는 다음과 같다. Dataframe의 column에 해당하는 Series의 index를 가지는 값을 해당 column에 더한다. 즉, s에서 인덱스 a에 해당하는 값인 10을 df의 a열에 한 번에 더한다. 한 번에 더하는 이 과정을 브로드 캐스팅(broadcasting)이라 한다. + 대신 add 메소드를 ..
python | sympy 설치 및 사용
·
TIL/python
sympy 설치 방정식을 풀 수 있는 라이브러리인 sympy는 python 내장 라이브러리가 아니기 때문에 따로 설치해주어야 한다. pip install sympy Anaconda Prompt에서 설치하는 과정을 보면 다음과 같다. 나의 경우에는 가상환경으로 이동(activate ml)하여 라이브러리를 설치해주었다. sympy 활용 sympy를 활용하여 아래 2차 방정식을 x에 대해 미분해보았다. $x^2 + 2x + 3$ import sympy as sym #1 from sympy.abc import x #2 sym.diff(sym.poly(x**2 + 2*x + 3), x) #3 #1) sympy 라이브러리를 불러온다. sym 이름으로 사용한다. #2) sympy.abc는 쉽게 말해 a부터 z까지의 ..
python | list에서 remove 사용 시 주의할 점
·
TIL/python
다음과 같은 리스트가 있다. num_list=[15,16,22,28] 홀수인 15만을 남기기 위해 짝수를 제거하는 코드를 작성했고, 결과는 다음과 같았다. 22는 짝수인데 왜 지워지지 않고 남아있는 거지? 그 이유는 다음과 같다. for문에서 num_list의 원본을 그대로 사용하기 때문에 remove를 진행하면서 원본에 손상이 가고 있었다. remove의 과정을 살펴보기 위해 print를 사용하여 남은 숫자와 지워진 숫자를 살펴보았다. 0번 인덱스에 위치한 15는 홀수이기 때문에 if문 조건에 부합하지 않아 남아있게 된다. 1번 인덱스에 위치한 16은 짝수이기 때문에 if문 조건에 부합하기 때문에 삭제되어 num_list는 [15,22,28]이 된다. for 문에서 처음에 선언한 num_list를 그대..