از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
محاسبه میانگین، میانه و حالت در پایتون
سرفصلهای مطلب
معرفی
هنگامی که میخواهیم نمونهای از دادهها را توصیف و خلاصه کنیم، احتمالاً با یافتن آن شروع میکنیم منظور داشتن (یا متوسط)، میانه، و حالت از داده ها اینها هستند گرایش مرکزی اندازه گیری می کند و اغلب اولین نگاه ما به یک مجموعه داده است.
در این آموزش، روش یافتن یا محاسبه میانگین، میانه و مد را در پایتون خواهیم آموخت. ابتدا برای هر اندازه گیری یک تابع پایتون را کد می کنیم و سپس از پایتون استفاده می کنیم statistics
ماژول برای انجام همان کار.
با این دانش، میتوانیم نگاهی سریع به مجموعه دادههای خود بیندازیم و ایدهای از گرایش کلی دادهها به دست آوریم.
محاسبه میانگین یک نمونه
اگر نمونه ای از مقادیر عددی داشته باشیم، آنگاه است منظور داشتن یا میانگین مجموع کل مقادیر (یا مشاهدات) تقسیم بر تعداد مقادیر است.
بگو نمونه اش را داریم (4, 8, 6, 5, 3, 2, 8, 9, 2, 5)
. می توانیم میانگین آن را با انجام عملیات محاسبه کنیم:
(4 + 8 + 6 + 5 + 3 + 2 + 8 + 9 + 2 + 5) / 10 = 5.2
میانگین (میانگین حسابی) یک توصیف کلی از داده های ما است. فرض کنید 10 پوند گوجه فرنگی می خرید. وقتی گوجه فرنگی را در خانه بشمارید، 25 گوجه به دست می آید. در این حالت می توان گفت که میانگین وزن یک گوجه فرنگی 0.4 پوند است. این می تواند توصیف خوبی از گوجه فرنگی شما باشد.
میانگین همچنین می تواند توصیف ضعیف نمونه ای از داده ها باشد. بگویید که در حال تجزیه و تحلیل گروهی از سگ ها هستید. اگر وزن انباشته همه سگ ها را در نظر بگیرید و آن را بر تعداد سگ ها تقسیم کنید، احتمالاً توصیف ضعیفی از وزن یک سگ جداگانه خواهد بود زیرا نژادهای مختلف سگ می توانند اندازه ها و وزن های بسیار متفاوتی داشته باشند.
اینکه میانگین چقدر خوب یا بد یک نمونه را توصیف می کند بستگی دارد روی انتشار داده ها چگونه است در مورد گوجه فرنگی، وزن هر کدام تقریبا یکسان است و میانگین توصیف خوبی از آنها است. در مورد سگ ها سگ موضعی وجود ندارد. آنها می توانند از یک چیهواهوای کوچک تا یک ماستیف غول پیکر آلمانی متغیر باشند. بنابراین، میانگین به خودی خود توصیف خوبی در این مورد نیست.
اکنون زمان آن است که وارد عمل شوید و یاد بگیرید که چگونه می توانیم میانگین را با استفاده از پایتون محاسبه کنیم.
محاسبه میانگین با پایتون
برای محاسبه میانگین نمونه ای از داده های عددی، از دو تابع داخلی پایتون استفاده می کنیم. یکی برای محاسبه مجموع کل مقادیر و دیگری برای محاسبه طول نمونه.
اولین تابع این است sum()
. این تابع داخلی یک مقدار تکرارپذیر از مقادیر عددی را می گیرد و مجموع کل آنها را برمی گرداند.
تابع دوم است len()
. این تابع داخلی طول یک شی را برمی گرداند. len()
میتواند دنبالهها (رشته، بایت، تاپل، فهرست یا محدوده) یا مجموعهها (فرهنگ لغت، مجموعه یا مجموعه ثابت) را به عنوان آرگومان در نظر بگیرد.
در اینجا چگونه می توانیم میانگین را محاسبه کنیم:
>>> def my_mean(sample):
... return sum(sample) / len(sample)
...
>>> my_mean((4, 8, 6, 5, 3, 2, 8, 9, 2, 5))
5.2
ابتدا مقادیر را جمع می کنیم sample
استفاده کردن sum()
. سپس، این مجموع را بر طول تقسیم می کنیم sample
، که مقدار حاصل از len(sample)
.
با استفاده از پایتون منظور داشتن()
از آنجایی که محاسبه میانگین یک عملیات رایج است، پایتون این قابلیت را در statistics
مدول. برخی از توابع را برای محاسبه آمار اولیه ارائه می دهد روی مجموعه ای از داده ها این statistics.mean()
تابع نمونه ای از داده های عددی (هر قابل تکرار) را می گیرد و میانگین آن را برمی گرداند.
در اینجا روش پایتون آمده است mean()
آثار:
>>> import statistics
>>> statistics.mean((4, 8, 6, 5, 3, 2, 8, 9, 2, 5))
5.2
ما فقط نیاز داریم import را statistics
ماژول و سپس تماس بگیرید mean()
با نمونه ما به عنوان یک استدلال. که میانگین نمونه را برمی گرداند. این یک راه سریع برای یافتن میانگین با استفاده از پایتون است.
این میانه یک نمونه از داده های عددی مقداری است که وقتی داده ها را مرتب می کنیم در وسط قرار دارد. داده ها ممکن است به ترتیب صعودی یا نزولی مرتب شوند، میانه یکسان باقی می ماند.
برای یافتن میانه، باید:
- مرتب سازی مثال
- مکان یابی کنید مقدار در وسط نمونه مرتب شده است
هنگام قرار دادن عدد در وسط یک نمونه مرتب شده، می توانیم با دو نوع موقعیت روبرو شویم:
- اگر نمونه دارای یک تعداد فرد مشاهدات، سپس مقدار وسط در نمونه مرتب شده، میانه است
- اگر نمونه دارای یک تعداد مشاهدات زوج، سپس باید میانگین دو مقدار میانی را در نمونه مرتب شده محاسبه کنیم
اگر نمونه را داشته باشیم (3, 5, 1, 4, 2)
و میخواهیم میانه آن را پیدا کنیم، سپس ابتدا نمونه را مرتب میکنیم (1, 2, 3, 4, 5)
. میانه خواهد بود 3
چون این مقدار در وسط است.
از طرفی اگر نمونه را داشته باشیم (1, 2, 3, 4, 5, 6)
، سپس میانه آن خواهد بود (3 + 4) / 2 = 3.5
.
بیایید نگاهی به روش استفاده از پایتون برای محاسبه میانه بیندازیم.
یافتن میانه با پایتون
برای یافتن میانه، ابتدا باید مقادیر موجود در نمونه خود را مرتب کنیم. ما می توانیم با استفاده از داخلی به آن برسیم sorted()
تابع. sorted()
یک تکرار می گیرد و مرتب شده را برمی گرداند list
حاوی همان مقادیر تکرارپذیر اصلی است.
مرحله دوم، تعیین مکان مقداری است که در وسط نمونه مرتب شده قرار دارد. برای قرار دادن آن مقدار در نمونه ای با تعداد فرد مشاهدات، می توانیم تعداد مشاهدات را بر 2 تقسیم کنیم. نتیجه، شاخص مقدار در وسط نمونه مرتب شده خواهد بود.
از آنجایی که یک اپراتور تقسیم (/
) یک عدد شناور را برمی گرداند، ما باید از a استفاده کنیم اپراتور تقسیم طبقه، (//
) برای بدست آوردن یک عدد صحیح بنابراین، می توانیم از آن به عنوان یک شاخص در عملیات نمایه سازی استفاده کنیم (()
).
اگر نمونه دارای تعداد مشاهدات زوج باشد، باید دو مقدار میانی را تعیین کنیم. بگو نمونه اش را داریم (1, 2, 3, 4, 5, 6)
. اگر طول آن را تقسیم کنیم (6
) توسط 2
با استفاده از یک تقسیم طبقه، سپس ما دریافت می کنیم 3
. این شاخص مقدار متوسط ما است (4
). برای پیدا کردن شاخص مقدار متوسط پایین ما (3
، می توانیم شاخص مقدار متوسط بالا را کاهش دهیم 1
.
بیایید همه اینها را با هم در تابعی قرار دهیم که میانه یک نمونه را محاسبه می کند. در اینجا یک پیاده سازی ممکن است:
>>> def my_median(sample):
... n = len(sample)
... index = n // 2
...
... if n % 2:
... return sorted(sample)(index)
...
... return sum(sorted(sample)(index - 1:index + 1)) / 2
...
>>> my_median((3, 5, 1, 4, 2))
3
>>> my_median((3, 5, 1, 4, 2, 6))
3.5
این تابع نمونه ای از مقادیر عددی را می گیرد و میانه آن را برمی گرداند. ابتدا طول نمونه را پیدا می کنیم، n
. سپس، شاخص مقدار وسط (یا مقدار متوسط بالا) را با تقسیم محاسبه می کنیم n
توسط 2
.
این if
بیانیه بررسی می کند که آیا نمونه موجود دارای تعداد فرد مشاهدات است یا خیر. اگر چنین است، پس میانه مقدار در است index
.
آخرین return
در صورتی اجرا می شود که نمونه دارای تعداد مشاهدات زوج باشد. در آن صورت، با محاسبه میانگین دو مقدار وسط، میانه را پیدا می کنیم.
توجه داشته باشید که عملیات برش (index - 1:index + 1)
دو مقدار می گیرد. مقدار در index - 1
و مقدار در index
زیرا عملیات برش مقدار در شاخص نهایی را حذف می کند (index + 1
).
با استفاده از پایتون میانه ()
پایتون statistics.median()
نمونه ای از داده ها را می گیرد و میانه آن را برمی گرداند. روش کار به این صورت است:
>>> import statistics
>>> statistics.median((3, 5, 1, 4, 2))
3
>>> statistics.median((3, 5, 1, 4, 2, 6))
3.5
توجه داشته باشید که median()
به طور خودکار محاسبه میانه را برای نمونه ها با تعداد مشاهدات فرد یا زوج انجام می دهد.
پیدا کردن حالت یک نمونه
این حالت متداول ترین مشاهده (یا مشاهدات) در یک نمونه است. اگر نمونه را داشته باشیم (4, 1, 2, 2, 3, 5)
، سپس حالت آن است 2
زیرا 2
دو بار در نمونه ظاهر می شود در حالی که عناصر دیگر فقط یک بار ظاهر می شوند.
حالت لازم نیست منحصر به فرد باشد. برخی از نمونه ها بیش از یک حالت دارند. بگو نمونه اش را داریم (4, 1, 2, 2, 3, 5, 4)
. این نمونه دارای دو حالت است – 2
و 4
زیرا آنها مقادیری هستند که بیشتر ظاهر می شوند و هر دو به تعداد یکسان ظاهر می شوند.
این حالت معمولاً برای داده های طبقه بندی شده استفاده می شود. انواع داده های طبقه بندی رایج عبارتند از:
- بولی – می تواند فقط دو مقدار مانند in را بگیرد
true
یاfalse
،male
یاfemale
- اسمی – می تواند بیش از دو مقدار را مانند in بگیرد
American - European - Asian - African
- ترتیبی – می تواند بیش از دو مقدار بگیرد اما مقادیر دارای ترتیب منطقی مانند in هستند
few - some - many
هنگامی که ما در حال تجزیه و تحلیل مجموعه داده ای از داده های طبقه بندی هستیم، می توانیم از حالت استفاده کنیم تا بدانیم کدام دسته در داده های ما رایج ترین است.
ما می توانیم نمونه هایی را پیدا کنیم که حالت ندارند. اگر همه مشاهدات منحصر به فرد هستند (مشاهدات مکرر وجود ندارد)، نمونه شما حالتی نخواهد داشت.
اکنون که اصول اولیه حالت را میدانیم، بیایید نگاهی به روش پیدا کردن آن با استفاده از پایتون بیندازیم.
پیدا کردن حالت با پایتون
برای یافتن حالت با پایتون، با شمارش تعداد وقوع هر مقدار در نمونه در دست شروع میکنیم. سپس، مقدار(های) را با تعداد دفعات بیشتر دریافت می کنیم.
از آنجایی که شمارش اشیاء یک عملیات رایج است، پایتون آن را ارائه میکند collections.Counter
کلاس این کلاس به طور ویژه برای شمارش اشیا طراحی شده است.
این Counter
کلاس متدی را ارائه می دهد که به صورت تعریف شده است .most_common((n))
. این متد a را برمی گرداند list
از تاپل های دو موردی با n
عناصر رایج تر و تعداد مربوط به آنها. اگر n
حذف شده است یا None
، سپس .most_common()
تمام عناصر را برمی گرداند.
استفاده کنیم Counter
و .most_common()
برای کدگذاری تابعی که نمونه ای از داده ها را می گیرد و حالت آن را برمی گرداند.
در اینجا یک پیاده سازی ممکن است:
>>> from collections import Counter
>>> def my_mode(sample):
... c = Counter(sample)
... return (k for k, v in c.items() if v == c.most_common(1)(0)(1))
...
>>> my_mode(("male", "male", "female", "male"))
('male')
>>> my_mode(("few", "few", "many", "some", "many"))
('few', 'many')
>>> my_mode((4, 1, 2, 2, 3, 5))
(2)
>>> my_mode((4, 1, 2, 2, 3, 5, 4))
(4, 2)
ما ابتدا مشاهدات را در sample
با استفاده از a Counter
هدف – شی (c
). سپس، از درک لیست برای ایجاد a استفاده می کنیم list
شامل مشاهداتی است که به تعداد یکسان در نمونه ظاهر می شوند.
از آنجا که .most_common(1)
برمی گرداند a list
با یکی tuple
از فرم (observation, count)
، باید مشاهده را در شاخص بدست آوریم 0
در list
و سپس آیتم در فهرست 1
در تودرتو tuple
. این را می توان با بیان انجام داد c.most_common(1)(0)(1)
. این مقدار اولین حالت نمونه ما است.
توجه داشته باشید که شرایط درک، تعداد هر مشاهده را مقایسه می کند (v
) با تعداد رایج ترین مشاهدات (c.most_common(1)(0)(1)
). این به ما امکان می دهد مشاهدات متعددی را بدست آوریم (k
) با همان تعداد در مورد نمونه چند حالته.
با استفاده از پایتون حالت()
پایتون statistics.mode()
مقداری می گیرد data
و حالت (اول) خود را برمی گرداند. بیایید ببینیم چگونه می توانیم از آن استفاده کنیم:
>>> import statistics
>>> statistics.mode((4, 1, 2, 2, 3, 5))
2
>>> statistics.mode((4, 1, 2, 2, 3, 5, 4))
4
>>> st.mode(("few", "few", "many", "some", "many"))
'few'
با یک نمونه تک حالته، پایتون mode()
رایج ترین مقدار را برمی گرداند، 2
. با این حال، در دو مثال قبل، بازگشت 4
و few
. این نمونهها دارای عناصر دیگری بودند که تعداد دفعات مشابهی رخ میدادند، اما شامل نشدند.
از آنجا که پایتون 3.8 ما نیز می توانیم استفاده کنیم statistics.multimode()
که یک تکرار پذیرفته و a را برمی گرداند list
از حالت ها
در اینجا مثالی از روش استفاده آورده شده است multimode()
:
>>> import statistics
>>> statistics.multimode((4, 1, 2, 2, 3, 5, 4))
(4, 2)
>>> statistics.multimode(("few", "few", "many", "some", "many"))
('few', 'many')
>>> st.multimode((4, 1, 2, 2, 3, 5))
(2)
توجه داشته باشید: تابع همیشه a را برمی گرداند list
، حتی اگر یک نمونه تک حالته را پاس کنید.
نتیجه
میانگین (یا میانگین)، میانه و حالت معمولاً اولین نگاه ما به نمونهای از دادهها هستند، زمانی که میخواهیم گرایش مرکزی دادهها را درک کنیم.
در این آموزش، روش یافتن یا محاسبه میانگین، میانه و حالت را با استفاده از پایتون آموختیم. ابتدا به صورت گام به گام روش ایجاد توابع خود را برای محاسبه آنها و سپس روش استفاده از Python توضیح دادیم. statistics
ماژول به عنوان یک راه سریع برای یافتن این اقدامات.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-17 04:23:04