본문 바로가기

데이터 다루기/Python

(17)
[Python] 정렬 (sort, sorted) Python에서 정렬에 특화된 함수로 sort와 sorted가 있습니다 두 함수의 가장 큰 차이로는 정렬하고자 하는 데이터의 타입에 있습니다. 우선 sort 함수는 기본적으로 List 형태의 데이터에만 작동합니다. 반면에 sorted 함수는 List 뿐만 아니라 다른 데이터 타입에도 작동할 수 있습니다. (1) 리스트 정렬 우선 리스트에 대해서 sort와 sorted를 사용해보겠습니다. x = [5, 12, 8, 9, 7] sorted(x) [5, 7, 8, 9, 12] y = [8, 2, 5, 11, 7] y.sort() y [2, 5, 7, 8, 11] (2) Dictionary 정렬 다음으로 Dictionary 타입 데이터에 특정 Key에 대해서 정렬을 할 수 있습니다. footballers_goa..
[Python] Pandas Series 객체 import pandas pandas.__version__ '1.3.5' 본 포스팅에서 사용하는 Pandas 버전은 1.3.5 입니다. Pandas 내에서는 Numpy의 Array와 같은 역할을 합니다. import pandas as pd import numpy as np data = pd.Series([5, 10 ,15, 20]) data 0 5 1 10 2 15 3 20 dtype: int64 큰 차이점이라 하면 Index라는 것에 있습니다. Series는 value와 index로 이루어져 있습니다. data.values array([ 5, 10, 15, 20]) data.index RangeIndex(start=0, stop=4, step=1) values는 array 타입이며, index는 Rag..
[Python] Array 합치기 두 개의 Numpy Array를 합치는 방법에 대해서 배워보도록 하겠습니다. Numpy 배열을 합치는 방법으로 크게 두 가지 함수를 사용하는 방법이 있습니다. arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) 합칠 2개의 Array를 만들어 보았습니다. 1. np.concatenate arr3 = np.concatenate([arr1, arr2], axis = 0) print(arr3.shape) arr3 (4, 2) array([[1, 2], [3, 4], [5, 6], [7, 8]]) arr3 = np.concatenate([arr1, arr2], axis = 1) print(arr3.shape) arr3 (2, 4) array(..
[Python] Array 정렬 (Sorting) 이번 포스팅에서는 Python에서 Numpy Array (배열)에 대해서 정렬을 배워보도록 하겠습니다. import numpy as np 가장 먼저 numpy 패키지는 import 하였습니다. def selection_sort(x): for i in range(len(x)): swap = i + np.argmin(x[i:]) (x[i], x[swap]) = (x[swap], x[i]) return x 우리는 기본적으로 선택 정렬 알고리즘을 Hard Coding하여 구현할 수 있습니다. x = np.array([3,9,7,2,6]) selection_sort(x) array([2, 3, 6, 7, 9]) 실제로 실행 결과를 보시면, Input으로 들어간 배열이 정렬되어 나타나는 것을 확인할 수 있습니다. ..
[Python] Array 만들기 Numpy 패키지를 활용해서 Array를 만드는 다양한 방법에 대해서 알아보겠습니다. import numpy as np import를 활용해서 numpy 패키지를 np라는 이름으로 불러왔습니다. np.zeros(10, dtype = int) array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) zeros 함수는 0으로 채워진 Array를 만드는데 사용됩니다. 인자로는 Array의 사이즈와 채워지는 value의 타입을 지정해줄 수 있습니다. 윗 코드는 정수 0으로 10의 길이를 가지는 배열을 만들라는 의미입니다. np.ones((3,5), dtype = float) array([[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]..
[Python] Numpy란? Numpy는 Python에서 과학 컴퓨팅을 위한 기본적인 패키지입니다. 다차원 배열개체를, 다양한 파생 개체 (행렬), 수학적, 논리적, 모양 조작, 정렬, 선택을 포함하여 배열 단위로 빠른 작업을 제공해주는 Python 라이브러리입니다. Numpy 패키지의 핵심은 배열 (ndarray)라고 할 수 있습니다. Numpy 배열과 표준 Python에서의 시퀀스 사이에는 몇 가지 중요한 차이점이 있고, 이를 알아두면 Numpy의 매력에 빠지실 수 있습니다!! Numpy 배열은 Python 목록과 달리 생성 시 크기가 고정되어 있습니다. 즉 ndarray의 크기를 변경하면 새 배열이 생성되고 원본은 삭제 됩니다. Numpy 배열의 요소는 모두 동일한 데이터 유형이어야 하므로 메모리에서 동일한 크기가 됩니다. N..
[Python] 에러 및 디버깅 파이썬에서는 코드에 문제가 있는 경우 에러를 출력합니다. 해당 에러에 대해 탐색하는 과정을 디버깅이라고 말합니다. 한 번 에러가 나는 코드를 만들어 보겠습니다. def division(a,b): return a / b def custom_function(x): return division(x, x-1) division은 a와 b를 인자로 받아서, a에서 b를 나눈 값을 반환합니다. custom_function은 x를 인자로 받아서, x에서 x-1을 나눈 값을 반환합니다. 만약 여기서 x = 1 을 대입하게 된다면 어떻게 될까요? 수학적으로 분모는 0이 되면 안되기 때문에, 아마 오류가 나야 할 것입니다. custom_function(1) -------------------------------------..
[Python] 코드 실행 시간 측정 %%timeit 위 문구를 사용하면 해당 코드에 대한 시간을 자동으로 측정할 수 있다. 예시로 for 문 loop와 list comprehension의 성능 차이를 관찰해보도록 하겠다. %%timeit L = [n ** 2 for n in range(10000)] timeit 를 코드 블록 가장 앞에 추가해주고 아래에 실행 시킬 코드를 입력해주면 된다. 해당 코드를 설명하자면 0부터 9999 까지 제곱 수를 list 안의 원소로 포함시키는 코드이다. 2.07 ms ± 6.07 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) 실행 결과를 보면 100개의 loop를 도는데 2.07 ms 의 시간이 소모된다. 이번에는 for 문 loop를 활용해서 빈 리스..