개요리스트에서 주어진 합계(N)가 되는 길이 K의 그룹(조합)을 찾아야 하는 경우가 있습니다. 이럴 때 빈 리스트와 함께 itertools 모듈의 product 메서드, 그리고 내장 함수인 sum과 append 메서드를 활용하면 손쉽게 해결할 수 있습니다.예제 코드아래는 실제 동작을 보여주는 예제입니다.from itertools import product my_list = [45, 32, 67, 11, 88, 90, 87, 33, 45, 32] print(The list is : ) print(my_list) N = 77 pri
두 숫자에 존재하는 모든 고유한 비공통 자릿수를 출력해야 하는 경우, 두 개의 정수를 매개변수로 받는 함수를 정의하면 간단하게 해결할 수 있습니다. 여기서는 파이썬 집합(set)이 제공하는 symmetric_difference 메서드를 활용해, 두 숫자 중 어느 한쪽에만 등장하는 자릿수를 손쉽게 추출합니다. 예제 아래는 실제 동작 과정을 보여주는 예제 코드입니다. def distinct_uncommon_nums(val_1, val_2): val_1 = str(val_1) val_2 = str(val_2) list_1
리스트 안에 여러 개의 딕셔너리가 들어 있을 때, 이들 딕셔너리에 포함된 모든 고유한 값(unique values)을 한 번에 추출해야 하는 경우가 종종 있습니다. 가장 간단한 방법은 각 딕셔너리의 값을 순회한 뒤 set()으로 감싸 중복을 제거하고, 이를 다시 list()로 변환하여 콘솔에 출력하는 것입니다.예제 코드아래 예제는 위 과정을 실제로 구현한 것입니다.my_list = [{hi: 11, there: 28}, {how: 11, are: 31}, {you: 28, Will: 31}] print(The list is:) pr
Python Pandas – & 연산자로 두 DataFrame의 공통 열 찾기네, 가능합니다. 파이썬 Pandas에서는 & 연산자(교집합 연산)를 사용하여 두 DataFrame 간의 공통 열(column)을 쉽게 찾을 수 있습니다. & 연산자는 집합 연산 중 교집합(intersection)을 수행하며, DataFrame의 .columns 속성에 적용하면 두 DataFrame이 공유하는 열 이름만 추출할 수 있습니다.먼저 예제에 사용할 두 개의 DataFrame을 생성해 보겠습니다.# dataframe1 생성 dataF
배열(리스트)의 모든 요소를 하나로 병합한 뒤, 그 숫자를 오름차순으로 정렬하여 출력해야 하는 경우가 있습니다. 이럴 때 두 개의 함수를 활용하면 깔끔하게 해결할 수 있습니다. 첫 번째 함수는 전달받은 숫자를 정렬한 후 정수형으로 변환하는 역할을 하고, 두 번째 함수는 리스트의 각 요소를 문자열로 매핑하여 하나의 문자열로 합친 뒤 첫 번째 함수를 호출합니다.예제 코드아래는 위 과정을 구현한 파이썬 코드입니다.def get_sorted_nums(my_num): my_num = .join(sorted(my_num)) my_
주어진 문자열 리스트 안에서 다른 문자열의 부분 문자열(substring)에 해당하는 모든 문자열을 찾아야 하는 경우, 파이썬의 set과 list 자료형을 활용하면 아주 간단하게 해결할 수 있습니다.핵심 아이디어는 두 리스트를 중첩 반복하며 조건에 맞는 요소만 골라내고, set으로 중복을 제거한 뒤 다시 list로 변환하는 것입니다.예제 코드아래는 두 개의 문자열 리스트에서 부분 문자열 관계에 있는 모든 문자열을 찾는 전체 예제입니다.my_list_1 = [Hi, there, how, are, you] my_list_2 = [Hi,
Pandas에서 열(Column) 값을 기준으로 DataFrame의 행을 필터링하려면 query() 함수를 사용할 수 있습니다. 이 함수 안에 원하는 조건식을 문자열 형태로 전달하면, 해당 조건을 만족하는 행만 손쉽게 추출할 수 있습니다.1. 라이브러리 임포트먼저 필요한 라이브러리를 임포트합니다.import pandas as pd2. 예제 데이터 준비팀 순위 데이터를 리스트 형태로 준비합니다.Team = [[India, 1, 100], [Australia, 2, 85], [England, 3, 75], [New Zea
리스트에서 특정 합계 s를 가지는 모든 부분집합(subset)을 찾아야 하는 경우가 있습니다. 이 문제는 리스트의 가능한 모든 조합을 생성한 뒤, 각 조합의 합이 목표값과 일치하는지 확인하고, 일치하는 조합만 콘솔에 출력하는 방식으로 해결할 수 있습니다. 예제 아래는 위 로직을 실제로 구현한 예제 코드입니다. from itertools import combinations def sub_set_sum(size, my_array, sub_set_sum): for i in range(size+1): for my_
Python에서 중첩된 리스트(리스트의 리스트)를 집합(set)의 리스트로 변환해야 하는 경우가 있습니다. 예를 들어 각 내부 리스트에서 중복 요소를 제거하고 싶을 때 유용합니다. 이때 map, set, list 함수를 함께 사용하면 간단하게 해결할 수 있습니다.예제 코드아래는 리스트의 리스트를 집합의 리스트로 변환하는 방법을 보여주는 예제입니다.my_list = [[2, 2, 2, 2], [1, 2, 1], [1, 2, 3], [1,1], [0]] print(변환 전 리스트:) print(my_list) my_result =
피벗 테이블(Pivot Table)을 만들려면 pandas.pivot_table() 함수를 사용하면 됩니다. 이 함수는 스프레드시트 스타일의 피벗 테이블을 DataFrame 형태로 반환해 줍니다.먼저 필요한 라이브러리를 임포트합니다.import pandas as pd팀(Team) 기록이 담긴 DataFrame을 생성합니다.dataFrame = pd.DataFrame({Team ID: {0: 5, 1: 9, 2: 6, 3: 11, 4: 2, 5: 7 },Team Name: {0: India, 1: Australia, 2: Bangla
Seaborn의 pairplot은 데이터셋 내 변수 간의 쌍별(pairwise) 관계를 한눈에 파악할 수 있게 해주는 강력한 시각화 도구입니다. 이렇게 만든 pairplot에 제목이나 설명 같은 주석 텍스트를 추가하고 싶다면, Matplotlib의 fig.text() 메서드를 활용하면 됩니다.구현 단계Seaborn, Pandas, Numpy, Pyplot 패키지를 임포트합니다.그림 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 자동으로 조정합니다.2차원 형태의, 크기가 변경 가능하며 이질적인(heterogeneou
데이터 시각화를 하다 보면 값의 범위가 매우 넓어 일반적인 선형 축으로는 그래프가 제대로 표현되지 않는 경우가 있습니다. 이럴 때 파이썬의 matplotlib 라이브러리에서 제공하는 plt.yscale() 함수를 사용하면 Y축에 로그 기반 스케일을 간단하게 적용할 수 있습니다. 이 글에서는 symlog(symmetric log) 스케일을 활용해 Y축을 지수적으로 확장하는 방법을 단계별로 살펴보겠습니다. symlog 스케일은 양수와 음수 값이 모두 포함된 데이터를 자연스럽게 표현할 수 있어 특히 유용합니다. Y축 스케일 변경 절차
데이터 시각화를 할 때 그래프에 세로선(vline)을 표시하고, 이 세로선의 의미를 설명하는 범례(legend)까지 함께 추가하고 싶은 경우가 자주 있습니다. Matplotlib에서는 Line2D 객체를 활용하면 실제 데이터와 연결되지 않은 가상의 핸들을 만들어 범례에 손쉽게 등록할 수 있습니다.구현 단계그림 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.하나의 그림(fig)과 서브플롯(ax) 집합을 생성합니다.빨간색으로 세로선을 그립니다.모든 정점을 잇는 실선 스타일과 각 정점에 표시되는 마커(mar
유한요소법(Finite Element Method, FEM)은 다양한 재료의 모델링, 복잡한 기하학적 구조 검증, 설계의 특정 영역에 작용하는 국소적 효과 시각화 등 여러 분야에서 활용되는 수치 해석 기법입니다. FEM은 큰 공간 도메인을 유한 요소(finite element)라고 불리는 단순한 부분들로 나누고, 각 요소를 모델링하는 간단한 방정식들을 하나의 큰 연립방정식 체계로 통합하여 전체 도메인을 해석합니다.2D FEM 결과를 Matplotlib으로 플롯하는 단계Matplotlib을 사용해 2D FEM 결과를 플롯하려면 다음
상관관계란 무엇인가?pandas.DataFrame.corr 메서드를 사용하면 NULL 값을 제외한 상태에서 열들 간의 쌍별(pairwise) 상관관계를 손쉽게 계산할 수 있습니다. 상관계수는 두 변수 사이의 선형 관계가 얼마나 강한지를 나타내는 지표이며, 그 값은 항상 -1부터 1 사이에 위치합니다.값이 1에 가까울수록 강한 양의 선형 관계를, -1에 가까울수록 강한 음의 선형 관계를 의미합니다. 반대로 0에 가깝다면 두 변수 사이에 선형 관계가 거의 없다는 뜻입니다.구현 절차Pandas 데이터프레임에서 두 숫자 열 사이의 상관관계
Python의 Matplotlib 라이브러리를 사용하면 히스토그램 그래프를 간단하게 생성하고 PNG와 같은 이미지 파일로 저장할 수 있습니다. 아래 단계를 따라 하면 됩니다.히스토그램 저장 절차figure 크기 설정 – 그림 크기를 지정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.데이터 준비 – 히스토그램에 사용할 데이터 포인트(예: 리스트 k)를 생성합니다.히스토그램 그리기 – hist() 메서드를 사용해 히스토그램을 플롯합니다.이미지 저장 – plt.savefig(파일명) 함수를 호출하여 그래프를 이미지 파일로
데이터 분석 작업을 하다 보면 .txt 형식의 텍스트 파일에 저장된 데이터를 그래프로 시각화해야 하는 경우가 자주 있습니다. Python의 대표적인 시각화 라이브러리인 matplotlib를 활용하면 텍스트 파일의 데이터를 손쉽게 읽어 들여 막대 그래프(bar chart)로 표현할 수 있습니다.구현 절차matplotlib를 사용하여 .txt 파일의 데이터를 플롯하려면 다음 단계를 따르면 됩니다.그림(figure) 크기를 설정하고, 서브플롯 주변과 사이의 여백(padding)을 조정합니다.막대 이름을 저장할 bar_names 리스트와
개요데이터 시각화에서 두 점을 연결할 때 단순한 직선보다 부드러운 곡선을 사용하면 더 자연스럽고 세련된 그래프를 만들 수 있습니다. Matplotlib에서는 쌍곡선 코사인(hyperbolic cosine) 함수를 활용해 두 점 사이를 잇는 곡선을 손쉽게 그릴 수 있습니다.이번 튜토리얼에서는 직선 대신 곡선으로 두 점을 연결하는 방법을 단계별로 살펴보겠습니다.구현 단계그림 크기를 설정하고 서브플롯 주변 및 사이의 여백을 조정합니다.수학적 표현식을 기반으로 곡선을 생성하는 draw_curve() 메서드를 정의합니다.point1과 poi
Pandas DataFrame에서 특정 열(column)의 최솟값을 구하려면 min() 함수를 사용하면 됩니다. 이 글에서는 min() 함수를 활용해 단일 열의 최솟값을 계산하는 방법을 예제와 함께 자세히 알아보겠습니다.1. Pandas 라이브러리 불러오기가장 먼저 필요한 Pandas 라이브러리를 임포트합니다.import pandas as pd2. DataFrame 생성하기예제에 사용할 두 개의 열(Car, Units)을 가진 DataFrame을 생성합니다.dataFrame1 = pd.DataFrame( { C
데이터 분석에서 피벗 테이블(Pivot Table)은 데이터를 원하는 기준으로 재구성하고 요약하는 데 매우 유용한 도구입니다. 판다스(Pandas)에서는 pandas.pivot_table 함수를 사용해 엑셀과 같은 스프레드시트 형태의 피벗 테이블을 손쉽게 DataFrame으로 생성할 수 있으며, 하나가 아닌 여러 개의 열을 동시에 인덱스(index)로 지정하는 것도 가능합니다. 1. 라이브러리 불러오기 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd 2. 예제용 DataFrame 생성하기 팀(Team) 관