NumPy - Random Data Distribution

توزیع داده چیست؟

توزیع داده لیستی از همه مقادیر ممکن و اینکه چقدر امکان رخ دادن هر یک از آن‌ها وجود دارد است.

چنین لیستی زمانی اهمیتی ویژه دارد که با آمار و علوم داده سر و کار دایم.

مدول random یک سری توابع شیء را معرفی کرده که توزیع‌هایی تصادفی از داده‌ها را برمی‌گردانند.

توزیع تصادفی

یک توزیع تصادفی مجموعه‌ای از اعداد تصادفی است که یک تابع چگالی احتمال (probability density function) مشخص را دنبال می‌کند.

تابع چگالی احتمال: تابعی که یک احتمال پیوسته را توصیف می‌کند. احتمال همه مقادیر داخل یک آرایه.

توسط تابع شیء choice() از مدول random می‌توانیم بر اساس احتمال‌های تعیین شده، اعداد تصادفی تولید نمائیم.

تابع شیء choice() این امکان را فراهم می‌کند که احتمال وقوع هر یک از مقادیر را تعیین کنیم.

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

جمع همه احتمالات داده شده باید برابر یک شود.

در کد زیر یک آرایه یک بعدی تصادفی شامل 100 مقدار که هر مقدار آن باید یکی از اعداد 3، 5، 7 و یا 9 باشد تولید می‌شود، که در آن احتمال رخ دادن مقدار 3 برابر 0.1، احتمال رخ دادن مقدار 5 برابر 0.3، احتمال رخ دادن مقدار 7 برابر 0.6 و احتمال رخ دادن مقدار 9 برابر 0 داده شده است.


from numpy import random

x = random.choice([3, 5, 7, 9], p=[0.1, 0.3, 0.6, 0.0], size=(100))

print(x)

خروجی:

اگر کد بالا را 100 مرتبه دیگر هم اجرا کنید هیچ‌گاه عدد 9 رخ نمی‌دهد.

با استفاده از پارامتر size می‌توانید آرایه‌ای تصادفی با احتمالات داده شده و شکل دلخواه ایجاد کنید.


from numpy import random

x = random.choice([3, 5, 7, 9], p=[0.1, 0.3, 0.6, 0.0], size=(3, 5))

print(x)

خروجی: