فهرست سرفصل‌های NumPy
خانه (HOME) مقدمه (Intro) شروع کار (Getting Started) ساخت آرایه ها (Creating Arrays) ایندکس گذاری آرایه (Array Indexing) برش آرایه (Array Slicing) انواع داده (Data Types) کپی در برابر View (Copy vs View) شکل آرایه (Array Shape) تغییر شکل آرایه (Array Reshape) حلقه روی آرایه (Array Iterating) ترکیب آرایه ها (Array Join) تقسیم آرایه ها (Array Split) جستجو در آرایه (Array Search) مرتب سازی آرایه (Array Sort) فیلتر کردن آرایه (Array Filter) مقدمه تصادفی سازی (Random Intro) توزیع داده (Data Distribution) جابه جایی تصادفی (Random Permutation) ماژول Seaborn (Seaborn Module) توزیع نرمال (Normal Distribution) توزیع دوجمله ای (Binomial Distribution) توزیع پواسون (Poisson Distribution) توزیع یکنواخت (Uniform Distribution) توزیع لجستیک (Logistic Distribution) توزیع چندجمله ای (Multinomial Distribution) توزیع نمایی (Exponential Distribution) توزیع کای دو (Chi Square Distribution) توزیع ریلی (Rayleigh Distribution) توزیع پارتو (Pareto Distribution) توزیع زیف (Zipf Distribution) مقدمه ufunc (ufunc Intro) ساخت تابع ufunc (ufunc Create Function) حساب ساده با ufunc (ufunc Simple Arithmetic) گرد کردن اعشار با ufunc (ufunc Rounding Decimals) لگاریتم ها با ufunc (ufunc Logs) جمع ها با ufunc (ufunc Summations) حاصل ضرب ها با ufunc (ufunc Products) تفاضل ها با ufunc (ufunc Differences) کمترین مضرب مشترک با ufunc (ufunc Finding LCM) بزرگترین مقسوم علیه مشترک با ufunc (ufunc Finding GCD) توابع مثلثاتی با ufunc (ufunc Trigonometric) توابع هذلولوی با ufunc (ufunc Hyperbolic) عملیات مجموعه ای با ufunc (ufunc Set Operations) ویرایشگر (Editor) آزمون (Quiz) تمارین (Exercises) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
NumPy

NumPy — توزیع پارتو (Pareto Distribution)

آخرین بروزرسانی: 1404/08/25

توزیع پارتو (Pareto Distribution)

در این صفحه با توزیع پارتو در NumPy آشنا می شوی. این توزیع پارتو (Pareto Distribution) بر اساس قانون 80-20 تعریف شده است. یعنی 20٪ عامل ها 80٪ نتیجه را می سازند.

توزیع پارتو در NumPy چیست؟

طبق متن منبع، توزیع پارتو یک توزیع با قانون 80-20 است. یعنی 20٪ عامل ها باعث 80٪ نتیجه می شوند. مثلاً تعداد کمی از وظایف، بخش بزرگی از نتیجه را می سازند.

در NumPy این رفتار با تابع random.pareto() شبیه سازی می شود. خروجی این تابع عددهایی است که از توزیع پارتو در NumPy پیروی می کنند.

این توزیع دُم بلندی دارد؛ یعنی مقدارهای بزرگ کم اند، اما کاملاً حذف نمی شوند.

پارامترهای توزیع پارتو در NumPy

تابع random.pareto() طبق منبع دو پارامتر اصلی دارد:

  • a: پارامتر شکل (Shape Parameter) است.
  • size: شکل آرایه خروجی را مشخص می کند.

پارامتر شکل a روی شیب توزیع تاثیر می گذارد. هرچه a بزرگ تر باشد، دُم توزیع پارتو در NumPy سریع تر پایین می آید.

برای دیدن توزیع دیگری با شکل متفاوت، می توانی بعداً صفحه توزیع ریلی در NumPy را هم ببینی.

نمونه گیری از توزیع پارتو در NumPy

در مثال منبع، یک نمونه از توزیع پارتو با شکل 2 ساخته می شود. شکل آرایه خروجی 2x3 است؛ یعنی دو سطر و سه ستون.

گام ها:

  1. کتابخانه random را از NumPy ایمپورت کن.
  2. تابع random.pareto() را با پارامتر a و size صدا بزن.
  3. خروجی را با print() روی ترمینال نمایش بده.
from numpy import random

x = random.pareto(a=2, size=(2, 3))

print(x)

مشاهده در ادیتور

نکته: اگر مقدارهای خروجی را مرتب کنی، معمولاً چند مقدار نسبتاً بزرگ می بینی و بقیه نزدیک هم اند. این همان حس قانون 80-20 در توزیع پارتو در NumPy است.

نمایش توزیع پارتو روی نمودار

دیدن شکل توزیع پارتو روی نمودار درک آن را ساده می کند. در مثال دوم از matplotlib و seaborn برای رسم استفاده می کنیم.

matplotlib یک کتابخانه رسم نمودار در پایتون است. seaborn هم کتابخانه ای برای کشیدن نمودارهای آماری خوش فرم روی داده ها است.

در کد زیر، هزار نمونه از توزیع پارتو در NumPy می سازیم و نمودارش را رسم می کنیم.

from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

data = random.pareto(a=2, size=1000)

sns.displot(data)

plt.show()

مشاهده در ادیتور

نکته: در نمودار پارتو، مقدارهای کوچک زیادند و هرچه جلوتر می رویم، تعداد مقدارهای بزرگ کم می شود.

قانون 80-20 و نگاه شهودی

قانون 80-20 می گوید 20٪ علت ها 80٪ نتیجه می سازند. توزیع پارتو در NumPy فقط یک مدل ریاضی برای همین ایده است.

مثلاً گاهی تعداد کمی از تمرین ها، بیشتر نمره تو را می سازند. این فقط یک نگاه شهودی برای فهم ساده تر توزیع پارتو است.

جمع بندی سریع توزیع پارتو

اگر خواستی مرور کنی، این صفحه توزیع پارتو در NumPy نقطه شروع خوبی است.

  • توزیع پارتو بر پایه قانون 80-20 تعریف می شود.
  • در NumPy با random.pareto() به این توزیع دسترسی داری.
  • پارامتر شکل a روی شیب و دُم توزیع اثر دارد.
  • size فقط شکل آرایه خروجی را تعیین می کند.
  • نمودار توزیع پارتو در NumPy مقدارهای کوچک زیاد و مقدارهای بزرگ کم دارد.