본문 바로가기

정보/프로그래밍

(11)
프로그램 실행 속도를 개선하는 방법 (중복 연산 제거, 벡터 연산, 병렬 처리) 오늘은 제가 프로그램 실행 속도를 개선했던 경험에 기반하여 몇 가지 팁을 알려드리려 합니다. 학부연구생을 하면서 데이터 처리와 같은 업무를 맡았는데 어떤 프로그램의 실행 시간이 과도하게 오래 소요되는 문제가 있었습니다. 이를테면 어떤 변수를 구하는 프로그램의 경우 약 2주 정도의 시간이 소요되었습니다. 제가 프로그램을 짜는 방법은 대체적으로 어떤 파생 변수를 구하는 함수를 만들고 중첩 for문 안에 넣는 방식이었습니다. # 예시 python 코드 all_lst = [] for s in lst1: for r in lst1: for i in lst2: for j in lst2: example = foo(s, r, i, j) all_lst.append(example) 연구에 사용할 데이터 셋이 이전의 데이터 ..
[Python, R] 사용자가 지정한 순서로 정렬하기 오늘은 파이썬과 R에서 사용자가 지정한 순서로 정렬하는 방법을 알아보겠습니다. 두 언어에서 위와 같은 방법을 실행하는 방법은 유사합니다. 먼저 데이터를 순서형 변수로 변환 후 정렬하면 됩니다. 코드를 보겠습니다. 파이썬 import pandas as pd df = pd.DataFrame({ 'Year': [2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021], 'Country1': ["USA", "USA", "USA", "KOR", "KOR", "JPN", "KOR", "JPN", "JPN", "USA", "USA", "USA", "KOR", "KOR", "JPN",..
[Pandas] 데이터프레임 정렬, 선택, 삭제 문법 및 사용법 정리 오늘은 Pandas 모듈을 사용하여 데이터프레임을 정렬, 선택, 삭제하는 방법에 대해 알아보겠습니다. 데이터프레임 내의 데이터를 순서대로 정렬하고, 특정 데이터만 선택하고, 삭제할 수 있습니다. [데이터프레임 생성] df = pd.read_csv("stock_df.csv", encoding="CP949") df 먼저 외부에서 다운로드한 자료로 데이터프레임을 생성해보았습니다. 데이터프레임 정렬 [PER 오름차순 정렬] df.sort_values(by=["per"]) sort_values 함수를 통해 데이터를 순서대로 정렬할 수 있습니다. 함수 안의 by 변수를 통해 어떤 컬럼을 기준으로 정렬할지를 선택해 주셔야 제대로 정렬이 됩니다. [PER 내림차순 정렬] df.sort_values(by=["승차총승객수..
[Pandas] 데이터프레임 탐색 문법 및 사용법 정리 오늘은 Pandas 모듈을 사용하여 데이터프레임을 탐색하고 출력하는 방법에 대해 알아보겠습니다. 데이터프레임을 출력하는 것뿐만 아니라 각종 통계치를 확인하거나 정보를 확인할 수 있습니다. 데이터프레임 탐색 [데이터프레임 생성] import pandas as pd data1 = {"연도": range(2000, 2010), "성적": [90, 80, 70, 80, 85, 90, 75, 80, 90, 85]} df = pd.DataFrame(data1) 탐색하기에 앞서서 일단 간단한 데이터프레임을 만들어보았습니다. [앞의 행 출력] df.head() head 함수를 통해 맨 위 행부터 5개의 행을 출력할 수 있습니다. 괄호 안에 숫자를 넣으면 맨 위 행부터 입력한 숫자만큼의 행을 출력합니다. [뒤의 행 출력..
[Pandas] 데이터프레임 생성 문법 및 사용법 정리 Pandas는 정형 데이터를 사용하여 데이터프레임을 만들고 분석할 수 있도록 하는 Python 내의 모듈입니다. 오늘은 이 Pandas를 사용하여 데이터프레임을 생성하는 방법을 정리해 보도록 하겠습니다. 데이터프레임 생성 - 첫 번째 방법 import pandas as pd data1 = {"연도": range(2000, 2005), "성적": [90, 80, 70, 80, 85]} df = pd.DataFrame(data1) pandas 모듈의 DataFrame 함수 안에 딕셔너리를 삽입하여 데이터프레임을 만들 수 있습니다. 컬럼 명을 key 값에, 데이터를 value 값에 넣으면 됩니다. 출력 결과는 다음과 같습니다. df - 두 번째 방법 data2 = [[2000, 90], [2001, 80], ..
[NumPy] 주요 기능 문법 및 사용법 정리 오늘은 이전 시간에 설명드렸던 NumPy 모듈의 기능들 외의 주요한 기능들에 대해 설명해보겠습니다. 배열 변형, 배열 정보 확인, 특정 값 선택, 저장 등 이전 시간에는 다루지 않았지만 중요한 기능들입니다. 배열 정보 확인 import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) #1 배열의 형태 확인 print(arr.shape) #print(np.shape(arr)) ## (2, 4) #2 배열의 데이터 타입 확인 print(arr.dtype) ## int64 shape 함수는 배열의 차원 구조를 나타냅니다. 위의 예시에서는 행렬 구조가 2행 4열임을 나타냅니다. dtype 함수는 배열의 데이터 타입을 나타냅니다. 위의 예시에서는 데이터 타입이..
[Numpy] 주요 연산 문법 및 사용법 정리 오늘은 NumPy의 기본 문법 중 많이 쓰이는 주요 연산 함수에 대해 알아보겠습니다. Numpy 배열의 연산은 리스트 연산과는 다르게 for문을 사용하지 않고 간단하게 연산할 수 있습니다. 예를 들어 NumPy 배열의 모든 수에 2를 곱하고 싶다면 NumPy배열 * 2를 코드로 작성하면 됩니다. 지금부터 NumPy 모듈의 주요 연산 함수에 대해서 알아봅시다. 사칙연산 import numpy as np arr = np.array([1, 2, 3, 4]) arr1 = np.array([5, 6, 7, 8]) # 덧셈 print(arr + arr1) #print(np.add(arr, arr1)) ## [ 6 8 10 12] # 뺄셈 print(arr1 - arr) #print(np.subtract(arr1, ..
[Numpy] 배열 생성 문법 및 사용법 정리 오늘은 행렬이나 다차원 배열의 연산을 쉽게 할 수 있도록 돕는 NumPy 모듈의 기본 문법과 사용법에 대해 정리해보도록 하겠습니다. NumPy 배열 연산의 특징으로는 적은 메모리를 사용하고 빠른 처리를 한다는 것이 있습니다. NumPy 배열의 장점은 기존의 리스트를 이용한 계산과는 다르게 for문을 사용하지 않고 간단하게 연산한다는 것입니다. 예를 들어 NumPy 배열의 모든 수에 1을 더하고 싶다면 단순히 NumPy 배열 + 1 을 코드로 작성하면 됩니다. (for문을 이용하여 하나하나 1을 더하고 다시 리스트에 저장하는 방식보다는 훨씬 빠르고 간단하죠?) 지금부터 NumPy 모듈의 기본 문법에 대해 알아보겠습니다. 초기화할 값 지정하여 배열 생성 import numpy as np a = np.arra..

반응형