Loading...
2021. 12. 1. 02:45

numpy array와 pandas에서 var을 구할 때 차이점

numpy array가 다음과 같이 주어진다. 여기서 분산을 구하고자 하는데 numpy.var()을 이용하여 구할 수 있다. 그런데 위 array를 pandas의 series에 넣어본다면 이 상태에서 분산을 구할려면 .var()을 하면 구할 수 있다 두 방식에서 구한 var에 차이가 있다 분명 같은 값들이 들어간 array로 var을 구한건데 왜 차이가 있을까? 그것은 numpy array에서는 var을 biased estimator로 구하기 때문이다. 모든 데이터 편차제곱합을 개수 N으로 나눠서 구한다 반면 pandas의 dataframe에서 var은 unbiased estimator로 구하기 때문이다. 그래서 두 값이 같게 만들려면 pd.Series에서 var의 옵션에 ddof=0으로 두면 두 값이 ..

2021. 11. 30. 18:47

Numpy 기초 6편

1. time array 연산의 시간을 비교 일반적으로 for loop가 가장 느리고 다음으로 list comprehension이 빠르고 numpy가 가장 빠르다 numpy는 c로 구현하여 연산속도의 이점을 확보하고 dynamic typing을 포기 대용량 계산에서 numpy가 이득 concatenate같은 단순 할당연산에는 속도 이점이 없음 위에서부터 for loop연산,list comprehension연산,numpy 연산 numpy가 압도적으로 빠르다 2. comparison 단순히 array를 scalar와 비교하면 array 원소 모두에 대해 comparison하여 boolean array로 반환 3. any,all np.any() array내 모든 원소에 대해 하나라도 True이면 True np..

2021. 11. 29. 21:27

Numpy 기초 5편

1. element wise operation numpy는 단순 list와는 다르게 기본적으로 array끼리 사칙연산을 지원함 기본적으로는 *,+,-는 대응하는 원소끼리 연산함 dot product는 일반적인 행렬곱으로 a.dot(b) , a@b transpose는 a.T , a.transpose() 2. broadcasting shape가 다른 배열 간 연산도 지원함 scalar가 matrix의 모든 원소에 대응하여 연산함

2021. 11. 29. 20:57

Numpy 기초 4편

1. operation 기본적인 수학연산 지원 sum,mean,median,var,std 등등 지원 median 지원이 인상적 np.exp(), np.sqrt(), … 등 지수함수와 제곱근도 지원 표준편차는 std()로 구할 수 있고 median같은 경우는 a.median()이 아니라 np.median(a) 식으로 구해야 에러가 안나는듯 2. axis 연산 실행에서 기준이 되는 축 ndarray의 shape가 (a,b,c,d,e,.....)이면 a는 axis=0 b는 axis=1 c는 axis=2, d는 axis=3, e는 axis=4,..... 그림2에서 (3,4) array의 원소 합 sum()을 구한건데 axis=1이 shape에서 4를 나타내니까 원소 4개 있는 방향으로 sum을 함 그림3에서 (..

반복문에서 경우의 수를 나누는 방법

1. 문제 여러개의 음료수가 준비되어 있는데 각 음료수가 a개있고 1개당 b리터만큼 존재하고 1개당 c 칼로리의 열량을 가진다. 주어진 음료수에 대한 정보가 담겨있는 배열의 각 원소가 [a,b,c] 형태로 주어지고 p리터만큼 음료수를 마시고자 한다. 최대로 열량을 섭취하고자 할 때 최대 열량을 return하도록 함수를 완성한다면? 단, p리터 이전에 한번 마시기 시작한 음료수는 끝까지 다 마셔야한다고 가정한다. 그리고 한번에 a개의 음료수를 모두 마실 필요 없이 a개중 일부만 마시고 다른 음료수를 마신 다음에 못마신 음료수를 다시 마셔도 된다. 예를 들어 [[3,1,1],[1,2,2]]의 음료수 정보가 주어지고 p=3리터만큼 마시고자 할 때 총 4칼로리의 최대 열량을 얻을 수 있다. 첫번째 3개 있는 음..

2021. 11. 28. 20:18

Numpy 기초 3편

1. np.arange(n) np.arange(n)은 0~n-1까지 한 행으로 array 생성 list의 range는 step size에 floating point가 불가능하나 arange()는 가능 보통 reshape와 같이 사용함 arange로 array를 만들고 원하는 shape로 바꾸기 위해 reshape를 사용 2. np.zeros() & np.ones() np.zeros()는 0으로 가득 찬 ndarray np.ones()는 1로 가득찬 ndarray 3. np.empty() np.empty()는 비어있는 ndarray를 생성한다 그런데 일반적으로 배열을 생성할때는 메모리 공간을 싹 비우고(initialization) 잡는데 np.empty는 그냥 메모리 공간을 잡는다. 그래서 잡은 공간에 들..