10 파이썬 수학 및 통계 분석 1 라이너


저자의 이미지 | 표의 문자
Python의 표현 구문과 내장 된 모듈 및 외부 라이브러리와 함께 복잡한 수학 및 통계 작업을 놀랍게도 간결한 코드로 수행 할 수 있습니다.
이 기사에서는 수학 및 통계 분석에 유용한 하나의 라이너를 살펴 보겠습니다. 이 원 라이너는 가독성과 효율성을 유지하면서 최소한의 코드로 데이터에서 의미있는 정보를 추출하는 방법을 보여줍니다.
🔗 Github의 코드 링크
샘플 데이터
하나의 라이너를 코딩하기 전에 다음과 같이 작업 할 샘플 데이터 세트를 만들어 봅시다.
import numpy as np
import pandas as pd
from collections import Counter
import statistics
# Sample datasets
numbers = [12, 45, 7, 23, 56, 89, 34, 67, 21, 78, 43, 65, 32, 54, 76]
grades = [78, 79, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96]
sales_data = [1200, 1500, 800, 2100, 1800, 950, 1600, 2200, 1400, 1750,3400]
temperatures = [55.2, 62.1, 58.3, 64.7, 60.0, 61.8, 59.4, 63.5, 57.9, 56.6]
참고 : 다음 코드 스 니펫에서 인쇄문을 제외했습니다.
1. 평균, 중앙값 및 모드를 계산합니다
데이터 세트를 분석 할 때는 종종 데이터 분포를 이해하려는 여러 가지 중심 경향이 필요합니다. 이 1 라이너는 세 가지 주요 통계를 단일 표현식으로 계산하여 데이터의 중심 특성에 대한 포괄적 인 개요를 제공합니다.
stats = (statistics.mean(grades), statistics.median(grades), statistics.mode(grades))
이 표현식은 Python의 통계 모듈을 사용하여 한 튜플 할당에서 산술 평균, 중간 값 및 가장 빈번한 값을 계산합니다.
2. 사 분위 범위를 사용하여 이상치를 찾으십시오
데이터 품질 평가 및 이상 탐지에는 특이 치 식별이 필요합니다. 이 1 라이너는 표준 IQR 방법을 일반적인 범위를 벗어난 값을 플래그하는 값으로 구현하여 잠재적 인 데이터 입력 오류 또는 진정으로 특이한 관찰을 발견 할 수 있습니다.
outliers = [x for x in sales_data if x np.percentile(sales_data, 75) + 1.5 * (np.percentile(sales_data, 75) - np.percentile(sales_data, 25))]
이 목록 이해력은 첫 번째 및 세 번째 사 분위수를 계산하고 IQR을 결정하며 사 분위수 경계에서 IQR의 1.5 배 이상의 값을 식별합니다. 부울 로직은 원래 데이터 세트를 필터링하여 외부 값 만 반환합니다.
3. 두 변수 사이의 상관 관계를 계산합니다
때로는 변수 간의 관계를 이해해야합니다. 이 1 라이너는 Pearson 상관 계수를 계산하여 두 데이터 세트 사이의 선형 관계 강도를 정량화하고 연관성에 대한 즉각적인 통찰력을 제공합니다.
correlation = np.corrcoef(temperatures, grades[:len(temperatures)])[0, 1]
Numpy corrcoef 함수는 상관 관계 행렬을 반환하고 두 변수 간의 상관 관계를 나타내는 비제고 요소를 추출합니다. 슬라이싱은 두 배열 모두 적절한 상관 계산을 위해 일치하는 치수를 갖도록합니다.
np.float64(0.062360807968294615)
4. 설명 통계 요약을 생성합니다
포괄적 인 통계 요약은 데이터 분포 특성에 대한 필수 통찰력을 제공합니다. 이 1 라이너는 주요 설명 통계를 포함하는 사전을 생성하여 단일 표현식으로 데이터 세트 속성의 전체 그림을 제공합니다.
summary = {stat: getattr(np, stat)(numbers) for stat in ['mean', 'std', 'min', 'max', 'var']}
이 사전 이해력은 사용됩니다 .getattr()
Numpy 함수를 동적으로 호출하려면 계산 된 값에 통계 이름을 깨끗하게 매핑합니다.
{'mean': np.float64(46.8),
'std': np.float64(24.372662281061267),
'min': np.int64(7),
'max': np.int64(89),
'var': np.float64(594.0266666666666)}
5. 데이터를 z- 점수로 정규화합니다
데이터를 z- 점수로 표준화하면 다양한 척도와 분포에서 의미있는 비교가 가능합니다. 이 1 라이너는 원시 데이터를 표준화 된 단위로 변환하여 각 값을 평균에서 표준 편차 수로 표현합니다.
z_scores = [(x - np.mean(numbers)) / np.std(numbers) for x in numbers]
목록 이해력은 z- 점수 공식을 각 요소에 적용하여 평균을 빼고 표준 편차로 나눕니다.
[np.float64(-1.4278292456807755),
np.float64(-0.07385323684555724),
np.float64(-1.6329771258073238),
np.float64(-0.9765039094023694),
np.float64(0.3774720994328488),
...
np.float64(0.29541294738222956),
np.float64(1.1980636199390418)]
6. 이동 평균을 계산합니다
스무딩 시계열 데이터는 단기 변동과 노이즈를 줄이는 데 도움이됩니다. 이 1 라이너는 지정된 창에 대한 롤링 평균을 계산하여 데이터의 방향 이동을 깨끗하게 볼 수 있습니다.
moving_avg = [np.mean(sales_data[i:i+3]) for i in range(len(sales_data)-2)]
목록 이해력은 3 개의 연속 값의 겹치는 창을 생성하여 각 창의 평균을 계산합니다. 이 기술은 특히 재무 데이터, 센서 판독 및 추세 식별이 중요한 순차적 측정에 특히 유용합니다.
[np.float64(1166.6666666666667),
np.float64(1466.6666666666667),
np.float64(1566.6666666666667),
np.float64(1616.6666666666667),
np.float64(1450.0),
np.float64(1583.3333333333333),
np.float64(1733.3333333333333),
np.float64(1783.3333333333333),
np.float64(2183.3333333333335)]
7. 가장 빈번한 값 범위를 찾으십시오
데이터 분포 패턴을 이해하려면 종종 데이터 세트 내에서 농도 영역을 식별해야합니다. 이 1 라이너는 데이터를 범위에 넣고 가장 인구가 많은 간격을 찾아 값이 가장 밀도로 클러스터되는 위치를 나타냅니다.
most_frequent_range = Counter([int(x//10)*10 for x in numbers]).most_common(1)[0]
표현식 빈은 수십 년으로 값을 값으로, 사용 주파수 수를 만듭니다. Counter
가장 일반적인 범위를 추출합니다. 이 접근법은 히스토그램 분석 및 복잡한 플로팅없이 데이터 분포 특성을 이해하는 데 유용합니다.
8. 화합물 연간 성장률을 계산합니다
재무 및 비즈니스 분석은 종종 시간이 지남에 따라 성장 궤적을 이해해야합니다. 이 1 라이너는 복합 연간 성장률을 계산하여 다양한 기간 동안 표준화 된 투자 또는 비즈니스 성과 측정을 제공합니다.
cagr = (sales_data[-1] / sales_data[0]) ** (1 / (len(sales_data) - 1)) - 1
공식은 최종 대 초기 값의 비율을 취하고,이를 기간의 상호 성의 힘으로 높이고, 성장률을 얻기 위해 하나를 빼냅니다. 이 계산은 각 데이터 포인트가 분석에서 일회성 기간을 나타냅니다.
9. 런닝 총계를 계산합니다
누적 계산은 진보적 인 변화를 추적하고 데이터의 변곡점을 식별하는 데 도움이됩니다. 이 원 라이너는 총계가 총을 생성하여 시간이 지남에 따라 값이 축적되는 방법을 보여줍니다.
running_totals = [sum(sales_data[:i+1]) for i in range(len(sales_data))]
목록 이해력은 슬라이스를 처음부터 각 위치로 점진적으로 확장하여 누적 합계를 계산합니다.
[1200, 2700, 3500, 5600, 7400, 8350, 9950, 12150, 13550, 15300, 18700]
10. 변동 계수를 계산합니다
척도가 다른 데이터 세트의 변동성을 비교하려면 상대적인 분산 척도가 필요합니다. 이 1 라이너는 변동 계수를 계산하여 표준 편차를 다른 측정 단위에서 의미있는 비교를위한 평균의 백분율로 표현합니다.
cv = (np.std(temperatures) / np.mean(temperatures)) * 100
계산은 표준 편차를 평균으로 나누고 결과를 백분율로 표현하기 위해 100을 곱합니다. 이 표준화 된 변동성 측정은 데이터 세트를 다른 단위 또는 스케일과 비교할 때 특히 유용합니다.
np.float64(4.840958085381635)
결론
이 Python One-Liners는 최소한의 코드로 수학 및 통계 작업을 수행하는 방법을 보여줍니다. 효과적인 원 라이너를 작성하는 열쇠는 간결함을 가독성과 균형을 유지하는 데있어 코드가 유지 될 수 있도록 유지하면서 효율성을 극대화하는 데 있습니다.
하나의 라이너는 강력하지만 복잡한 분석은 더 쉽게 디버깅을 위해 작업을 여러 단계로 나누는 이점을 얻을 수 있습니다.
발라 프리 야 c 인도의 개발자이자 기술 작가입니다. 그녀는 수학, 프로그래밍, 데이터 과학 및 컨텐츠 제작의 교차점에서 일하는 것을 좋아합니다. 그녀의 관심 분야와 전문 지식에는 DevOps, 데이터 과학 및 자연어 처리가 포함됩니다. 그녀는 독서, 쓰기, 코딩 및 커피를 즐깁니다! 현재 그녀는 자습서, 방법 안내, 의견 조각 등을 통해 개발자 커뮤니티와 지식을 배우고 공유하는 작업을하고 있습니다. Bala는 또한 매력적인 리소스 개요 및 코딩 자습서를 만듭니다.
Post Comment