فهرست سرفصل‌های 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 — توزیع زیف (Zipf Distribution)

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

توزیع زیف (Zipf Distribution)

در این صفحه با توزیع زیف در NumPy آشنا می شوی. این توزیع زیف (Zipf Distribution) بر اساس قانون زیف ساخته شده که می گوید واژه های پرکاربرد خیلی بیشتر تکرار می شوند.

توزیع زیف در NumPy چیست؟

در متن منبع گفته شده توزیع زیف برای نمونه گیری طبق قانون زیف استفاده می شود. قانون زیف می گوید در یک مجموعه، واژه رتبه nام تقریباً به اندازه 1/n از واژه اول دیده می شود.

مثلاً واژه پنجم پرکاربرد، حدود یک پنجم واژه اول ظاهر می شود. تابع random.zipf() همین رفتار را در توزیع زیف در NumPy شبیه سازی می کند.

خروجی این تابع اغلب عددهای کوچک است، اما گاهی عددهای بزرگ تر هم دیده می شود.

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

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

  • a: پارامتر توزیع است و شیب توزیع را تعیین می کند.
  • size: شکل آرایه خروجی را مشخص می کند.

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

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

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

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

گام ها:

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

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

print(x)

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

نکته: اگر این آرایه را چند بار بسازی، معمولاً عددهای کوچک بیشترند و گاهی عددهای بزرگ تر ظاهر می شوند. این رفتار، امضای توزیع زیف در NumPy است.

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

در مثال دوم، 1000 نمونه از توزیع زیف در NumPy ساخته می شود. اما فقط مقدارهای کوچک تر از 10 رسم می شوند تا نمودار معنی دارتر و شلوغی کمتر شود.

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

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

x = random.zipf(a=2, size=1000)

filtered = x[x < 10]

sns.displot(filtered)

plt.show()

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

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

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

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

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