본문 바로가기

반응형

Programming/Python

(33)
파이썬 Numpy 다차원 배열 Numpy는 1차원~ 3차원 같은 다차원 배열(ndarray)을 생성할 수 있다. 파이썬 리스트를 사용해 다차원 배열을 생성할 수 있고, zeros, empty, random 같은 내장 함수를 이용할 수도 있다. 배열 생성 벡터 연산 다차원 배열의 비교 다차원 배열의 비교에서는 불리언 배열을 반환한다. 이 기능을 이용해 특정 데이터를 조회할 수 있다. 조회 인덱스, 슬라이싱, 조건 비교를 이용해 데이터를 조회할 수 있다. 판다스를 이용해 데이터프레임 형태로 변환해보니, b의 위치가 1, 1에 위치한 것을 알 수 있다. 0, 0 이 1이 된다. 0부터 시작되는 것을 잘 인식하도록 하자. 치환 속성
파이썬 NumPy 데이터타입 NumPy의 기본 데이터 타입1은 정수, 실수, 복소수, 불리언, 객체, 문자, 유니코드형이 있다. 기본타입 고정 사이즈 숫자형
파이썬 NumPy 라이브러리 장점 NumPy는 다차원 배열(ndarray)을 이용하여 연산이 편리하고, 파이썬 기본 자료구조에 비하여 매우 빠른 작업 속도를 제공한다. NumPy 장점 파이썬 리스트의 각 값에 곱하는 연산을 하려면 for 문을 이용해서 복잡하게 계산을 해야 하는데, 벡터화 연산을 이용해 간단하게 계산이 가능하다. 빠른 작업 속도 파이썬이 다 좋은데, 연산속도가 느리다고 한다. 그런데 NumPy는 데이터를 연속된 메모리 블록에 저장하고, C로 구현되어 있어서 타입 검사와 같은 오버헤드 없이 메모리를 직접 조작할 수 있어 빠른 속도로 계산을 처리할 수 있다. 100만개의 데이터를 저장한 파이썬 리스트와 다차원 배열을 비교하면 작업속도가 거의 10배 이상 차이가 나는 것을 확인할 수 있다.
파이썬 판다스 기능 - loop(iterrows, itertuples) iterrows : 현재 인덱스와 시리즈 정보를 반복 itertuples : 데이터를 튜플로 반환
파이썬 판다스 기본 함수 기술 통계 정보 정렬 데이터 프레임의 정렬은 인덱스를 정렬하는 함수와 값을 정렬하는 함수가 있다. sort_index()는 인덱스의 데이터를 정렬 sort_values()는 값을 정렬 정렬 기준: axis 0: 인덱스 1: 칼럼 정렬 방향: ascending True: 오름차순 False: 내림차순 값 정렬: sort_values() 결측치 확인 : isnull(), notnull() 결측치는 isnull() 함수를 이용 결측치가 아닌 값을 확인할 때는 notnull()을 이용 결측치 채우기: fillna() 결측치를 다른 값으로 치환할 때는 fillna()를 이용. fillna()는 복제본을 반환하기 때문에 원본 데이터에 값을 바로 수정하고 싶다면 inplace 옵션을 이용 결측치를 채울 때 지정한 값..
파이썬 판다스 데이터프레임 카테고리형 데이터 데이터를 astype('categrory')로 형변환하거나, pd.cut(), pd.qcut() 함수를 이용하여 데이터를 카테고리화 할 수 있다. 카테고리형 데이터 생성: astype 문자열 데이터를 카테고리형으로 변환하면 메모리 사용량을 많이 줄일 수 있다. 카테고리형 데이터 생성: cut 카테고리형을 정수형으로 바꾸기 : map, factorize 데이터를 전처리하고 머신러닝 분석을 하기 위해서는 카테고리형이 정수형으로 바뀌어야 한다. 이때 map 이나 factorize를 이용하면 카테고리형 데이터를 정수형으로 변경할 수 있다. 근데 사실 여기서 데이터타입이 int64에서 32로 변경이 되기는 했는데, 이렇게 나온 게 맞는 것인지 모르겠다. 애초부터 카테고리에서 정수형으로 변경할 때, int62로 바..
파이썬 Pandas 라이브러리 데이터 타입 변경 데이터 타입을 변경할 때는 astype() 를 사용한다. 문자열을 숫자형으로 변경하는 경우처럼 형변경을 할 수 없는 경우에는 오류가 발생한다. 이럴 때는 map()이나 apply() 함수를 이용해서 형변경을 처리한다. 원본은 바뀌지 않고, 복사본이 반환된다.
파이썬 인자(Argument) 개념 잡기 파이썬에서 모든 타입은 객체이다. 변수에 객체를 할당하면 특정 메모리 주소 공간을 할당받게 된다. 그리고 그 변수를 다시 다른 변수에 대입하게 되면 같은 주소를 바라본다. 다시 a 에 새로운 값을 할당하고, id값을 확인해보면, 새로운 변수가 입력되면서, a의 주소가 변경된다. 이렇게 단순히 원시값으로 되어 있는 int, float, immutable한 객체인 튜플, 스트링 등은 이렇게 값의 변화에 따라 메모리 주소가 재할당된다. 하지만, mutable 한 객체는 내부 값에 변화를 주면 같은 곳을 바라보고 있던 변수의 주소가 바뀌지 않은 채 함께 변경된다. 이 문제가 함수의 인자 전달에서도 동일하게 적용된다.

반응형