<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های انجمن هوش مصنوعی دانشگاه اصفهان</title>
        <link>https://virgool.io/feed/@uiai_community</link>
        <description>انجمن هوش مصنوعی دانشگاه اصفهان</description>
        <language>fa</language>
        <pubDate>2026-06-17 02:41:03</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/260481/avatar/asqqU1.png?height=120&amp;width=120</url>
            <title>انجمن هوش مصنوعی دانشگاه اصفهان</title>
            <link>https://virgool.io/@uiai_community</link>
        </image>

                    <item>
                <title>معرفی کتابخوانه پلاتلی (plotly)(بخش سوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-sbhfbpon4090</link>
                <description>کتابخوانه Theming and templates in Python:این کتابخانه دارای تعداد بسیار زیادی از جلوه ها هست که دست ما را جهت انتخاب و به کارگیری درست آنها بازمیگذارد. همچنین امکان شخصی سازی این جلوه ها در این کتابخانه فراهم است.مشاهده تم های در دسترس :برای مشاهده جلوه ها و تم های قابل استفاده در این کتابخانه میتوان از قالب زیر پیروی کرد.import plotly.io as pio pio.templatesخروجی:Templates configuration-----------------------Default template: &#039;plotly&#039;Available templates:[&#039;ggplot2&#039;, &#039;seaborn&#039;, &#039;simple_white&#039;, &#039;plotly&#039;,&#039;plotly_white&#039;, &#039;plotly_dark&#039;, &#039;presentation&#039;, &#039;xgridoff&#039;,&#039;ygridoff&#039;, &#039;gridon&#039;, &#039;none&#039;]استفاده از تم ها قابل استفاده :با استفاده از فرمان زیر میتوان تمام تابع ها و آرگومان های به کار رفته در یک قالب را فرا خواند و جهت تغییردادن تم از انها استفاده کرد. به طور مثال ما میخواهیم نمودار رو به رو را در تم سیاه پیاده نماییم.df = px.data.gapminder() df_2007 = df.query(&amp;quotyear==2007&amp;quot) for template in [ &amp;quotplotly_dark&amp;quot]: fig = px.scatter(df_2007, x=&amp;quotgdpPercap&amp;quot, y=&amp;quotlifeExp&amp;quot, size=&amp;quotpop&amp;quot, color=&amp;quotcontinent&amp;quot, log_x=True, size_max=60, template=template, title=&amp;quotGapminder 2007: &#039;%s&#039; theme&amp;quot % template) fig.show()همیشه برای اینکه بخواهیم از یک تم به عنوان تم پیش فرض استفاده کنیم، میتوان از این کد برای تعیین تم گلوبال و پیش فرض برنامه استفاده کرد .import plotly.io as pio import plotly.express as px pio.templates.default = &amp;quotplotly_white&amp;quotاجبار یک محور به نمایش داد ه ها به صورت طبقه بندی شده :با تنظیم مستقیم xaxis_type می توان نوع محور را مجبور به تغییر کرد. در مثال زیر، نوع محور X به خودکار خطی خواهد بود اما ما آن را مجبور میکنیم که به صورت دسته بندی شده باشد.import plotly.express as px fig = px.bar(x=[&amp;quota&amp;quot, &amp;quota&amp;quot, &amp;quotb&amp;quot, 3], y = [1,2,3,4]) fig.update_xaxes(type=&#039;category&#039;) fig.show()تعیین نام محور افقی و عمودی در نمودار ها :همانگونه که قبلا مشاهده کردید، در پلاتلی اکسپرس اگر از دیتافریم استفاده میکنیم، به طور خودکار نام سطر یا ستون انتخاب شده برای نمودار نیز استفاده میشود. ولی برای تغییر دستی )یا اجباری ( میتوان از آرگومان labels استفاده کرد. ورودی این آرگومان یک دیکشنری به اسم قبلی نمودار )همان سطر یا ستون وارده از دیتافریم( میباشد:df = px.data.tips() fig = px.scatter(df, x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, color=&amp;quotsex&amp;quot, labels=dict(total_bill=&amp;quotTotal Bill ($)&amp;quot, tip=&amp;quotTip ($)&amp;quot, sex=&amp;quotPayer Gender&amp;quot) ) fig.show()همچنین میتوان در نمودار هایی که بدون استفاده از دیتافریم درست شده اند، از x و y به جای نام دیتا استفادهکرد.تغییر مکان tick مقدار هر واحد از مختصات نمودار  :اصولا به مشخصه ای که مقدار نمودار را تعیین میکند، tickاست( » علامت « میگویند. )ترجمه فارسی برابر حال میتوان موقعیت نسبی این مقدار را نسبت به خطوط نمودار تغییر داد. به طور پیشفرض، مقادیر محور y روی انتهای خطوط مختصات، و در داخل نمودار قرار دارد ) Inside middle )ولی میتوان با کلمات کلیدی از پیش تعیین شده، این مکان را تغییر داد.df = px.data.stocks(indexed=True)-1 fig = px.bar(df, x=df.index, y=&amp;quotGOOG&amp;quot) fig.update_yaxes(ticklabelposition=&amp;quotinside top&amp;quot, title=None) fig.show()تولید چند نمودار در یک شکل :از طریق پلاتلی اکسپرس نمیتوان از هر داده ای به طور مستقیم برای چند ساب پلاتی استفاده کرد. زیرا px از ساب پلات پشتیبانی نمیکند ولی میتوان با تغییر داده ی خود، از facet ا ستفاده کرد. برای همین یک مثال میزنیم:با استفاده از متد melt که از متد های پانداس میباشد، ستون های داده ی خود را به نحوی ذوب کرده و به دو ستون تبدیل میکنیم. این تغییر شکل باعث میشود، بتوانیم از facet برای چند نموداری استفاده کنیم.df = pd.DataFrame({ &#039;Day&#039;:range(10), &#039;Temperature&#039;: np.random.rand(10), &#039;Wind&#039;: np.random.rand(10), &#039;Humidity&#039;: np.random.rand(10), &#039;Pressure&#039;: np.random.rand(10),}) df_melt = df.melt( id_vars=&#039;Day&#039;, value_vars=[&#039;Temperature&#039;, &#039;Wind&#039;, &#039;Humidity&#039;, &#039;Pressure&#039;])این تعداد سطر داده ی ذوب شده به تعداد id که همان روز میباشد، تبدیل میشود.حال میتوان از این داده ی جدید استفاده کرد و با scatter آنرا نمایش داد:اینگونه برای هر ستون داده ی خود، یک نمودار داریم.(یه جورایی ?)fig = px.scatter( df_melt, x=&#039;Day&#039;, y=&#039;value&#039;, facet_col=&#039;variable&#039;, facet_col_wrap=2, color=&#039;variable&#039;, width=800, ) fig.show()نمایش چند محور در یک نمودار :میتوان به جای یک y لیستی از ستون ها را به آرگومان y خود بدهیم تا آنها را نمایش دهد:df = px.data.stocks() fig = px.line(df, x=&#039;date&#039;, y=df.drop(&#039;date&#039;, axis=1).columns) fig.show()خیلی ممنون که تا اینجای آموزش مارا همراهی کردیدانجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیرمحسن براهیمیابوالفضل شیشه گرعلیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 13:05:32 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (plotly)(بخش اضافی)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%A7%D8%B6%D8%A7%D9%81%DB%8C-ce59cqdqpxfw</link>
                <description>فرق پلاتلی با مت پلات لیب :(برای استراحت این قسمت رو بخونید که یکم وقت بدین مغزتون قبلیا رو هضم کنه ?. در صورت آمادگی میتونین این قسمت رو رد کنین.)تا الان شاید براتون سوال شده وقتی مت­پلات­لیب بااین همه امکانات هست (که یه خوردشو بهتون یاد دادیم ?)برای­ چی نیازه که پلاتلی رو هم یاد بگیریم؟خب این موضوع رو میخوام با ذکر به مثال توضیح بدم:یک عادت آزاردهنده در بین هواداران فوتبال وجود داره که هر زمان که یک بازیکن جوان اما مسلماً استثنایی ظاهر میشه، اونو با اسطوره هایی مانند مسی یا رونالدو مقایسه می کنن.اونا یه جورایی این نکته که در زمانی که این نوجوان­ها در هسته بودن، این اسطوره ها به بازی ها غلبه کرده بودن.مقایسه Plotlyبا Matplotlibبه نوعی مشابه همان ابتدا بود. Matplotlibاز سال 2003 به شدت مورد استفاده قرار گرفته بود و Plotly به تازگی در سال 2014 منتشر شده بود.در این زمان بسیاری از Matplotlib خسته شده بودن، بنابراین Plotly به دلیل تازگی و تعامل آن به گرمی مورد استقبال قرار گرفت. با این حال، این کتابخونه نمی‌تونست امیدوار باشه که به عنوان پادشاه پایتون در حال طراحی پلات برنامه­ها از Matplotlib، جایگاه برتر را بدزده.در سال 2019، زمانی که Plotly در ماه جولای Express API خود را منتشر کرد، همه چیز به شدت تغییر کرد. این باعث انفجار علاقه در کتابخانه شد و مردم از چپ و راست شروع به استفاده از آن کردن.با نسخه اصلی دیگری (5.0.0) که در ژوئن امسال منتشر شد، من فکر می کنم Plotlyبیش از اندازه کافی برای مقایسه آن با Matplotlibبه بلوغ رسیده است.با این مقدمه، بیاین توضیح اصلی رو شروع کنیم:1. قابلیت استفاده API:بیایید با مقایسه سهولت استفاده از API آنها شروع کنیم. هر دو رابط های سطح بالا و سطح پایین را برای تعامل با عملکرد اصلی ارائه می دهند.1.1 سازگاری APIهای سطح بالاتر (Pyplotدر مقابل Express):از یه طرف، Expressدر سازگاری عالیه. این فقط شامل توابع سطح بالاتر برای دسترسی به نمودارهای داخلی است. نیازی به یادگیری راه­های جدید برای هرکاری ندارین.از سوی دیگه، Pyplotتمام توابع رسم و سفارشی سازی ها را در یک APIواحد و جدید بسته بندی می کند. حتی اگر فراخوانی نمودار دارای امضای یکسانی باشد، توابع سفارشی سازی با توابع OOP APIمتفاوت است.Plotly = 1 vs. MPL = 01.2 مقدار کد مورد نیاز برای جابجایی بین APIها:برای جابجایی از Pyplotبه OOP API MPL، به سادگی میشه نحوه تعامل با ساختارهای داده اصلی، مانند اشیاء شکل و محورها را تغییر بدیم. فراخوانی به نمودارها دارای پارامترای مشابهی هستند تغییری نمی کنه.تغییر از Expressبه اشیاء گراف نیاز به یک منحنی یادگیری تند دارد. امضای توابع برای ایجاد تمام نمودارها تغییر می کند و GO پارامترهای بسیار بیشتری را به هر فراخوانی نمودار اضافه می کند. نقطه ضعف اینجاست که GO نیاز به یادگیری پارامتر و توابع جداگانه داره.Plotly = 1 vs. MPL = 11.3 سفارشی سازی APIاگرچه بخش جداگانه ای در مورد سفارشی سازی وجود دارد، اما باید در مورد آن از نظر API صحبت کنیم.همه سفارشی سازی ها در Matplotlib دارای عملکردهای جداگانه هستند. این به شما اجازه می دهد تا تغییراتی را در نمودار در تکه های کد و با استفاده از حلقه ها یا سایر رویه ها ایجاد کنید.در مقابل، پلاتلی به طور گسترده از فرهنگ لغت استفاده می کند. در حالی که این امر سازگاری خاصی با نحوه تعامل شما با نمودارها و داده ها ارائه می دهد، اما هزینه سنگین خوانایی و طول کد را به همراه دارد.ممکن است مکث کنید و به این تفاوت‌ها بین APIها فکر کنید، اما Matplotlib بیشتر پایتونیک و خوانا است.Plotly = 1 vs. MPL = 22. سرعت:برای دیدن تفاوت واقعی بین سرعت ها، باید از مجموعه داده های بزرگتری استفاده کنیم. من مجموعه دیتابیس های diamonds را از Seaborn وارد می کنم و زمان لازم برای ترسیم یک نمودار پراکندگی ساده را با هم مقایسه می کنم. که نشون میده Matplotlib تقریبا 80 برابر سریعتر از Plotly است و خطاهای SD بسیار کمتری دارد.Plotly = 1 vs. MPL = 3تا اینجا دیدیم که پلاتلی شکستی نسبی خورده؛ پس یادگیری این کار بیهودهایه؟ قطعا تا اینجا نمیشه جوابکاملی به این سوال داد، پس ادامهی این مقایسه، میتونه مهم باشه. ولی ما ادامهی این موضوع رو به بعدا موکولمیکنیم و الان به آموزش اصلیمون میپردازیم که از اصل بحث دور نشده باشیم?انجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیرمحسن براهیمی ابوالفضل شیشه گر علیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 12:37:37 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (plotly)(بخش دوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-osdtluoyzpjp</link>
                <description>نمودار bar:df = px.data.tips() fig = px.bar(df, x=&amp;quotsex&amp;quot, y=&amp;quottotal_bill&amp;quot, color=&amp;quotsmoker&amp;quot, barmode=&amp;quotgroup&amp;quot) fig.show()براحتی میتوان با آرگمان هایی که نشان دادیم، لیبل های X و Y را نام گذاری کرد و لجند را با color تعیین کردیم.استفاده از pattern برای نمودار bar :از آرگومان های px میتوان برای هم نوع هاشور و نام ستون اطلاعات موثر در نوع هاشور استفاده کرد.df = px.data.medals_long() fig = px.bar(df, x=&amp;quotmedal&amp;quot, y=&amp;quotcount&amp;quot, color=&amp;quotnation&amp;quot, pattern_shape=&amp;quotnation&amp;quot, pattern_shape_sequence=[&#039;.&#039;, &#039;x&#039;, &#039;+&#039;]) fig.show()ظاهرا استفاده از پترن در جوپیتر در ورژن 5.1.0 پلاتلی مشکلاتی دارد که ممکن است در نسخه های بعدی درست شود.استفاده از facet در نمودار بار :df = px.data.tips() fig = px.bar(df, x=&amp;quotsex&amp;quot, y=&amp;quottotal_bill&amp;quot, color=&amp;quotsmoker&amp;quot, barmode=&amp;quotgroup&amp;quot, facet_row=&amp;quottime&amp;quot, facet_col=&amp;quotday&amp;quot, category_orders={&amp;quotday&amp;quot: [&amp;quotThur&amp;quot, &amp;quotFri&amp;quot, &amp;quotSat&amp;quot, &amp;quotSun&amp;quot], &amp;quottime&amp;quot: [&amp;quotLunch&amp;quot, &amp;quotDinner&amp;quot]}) fig.show()این آرگومان برای زمانی میباشد که چند نمودار مربوط به یکدیگر در شکل باشد و شکل، لیبل عمودی وافقی جامعی برای دسته بندی این نمودار ها داشته باشد.این آرگومان ها را میتوان برای انواع نمودار های تک بعدی و دو بعدی استفاده کرد؛ و برای بعضی از نمودار هایسه بعدی. مثال بعدی را نیز در مورد نمودار scatter میزنیم.مثال استفاده از facet در نمودار scatter :df = px.data.iris() fig = px.scatter_matrix(df, height=500, dimensions=[&amp;quotsepal_width&amp;quot, &amp;quotsepal_length&amp;quot, &amp;quotpetal_width&amp;quot, &amp;quotpetal_length&amp;quot], color=&amp;quotspecies&amp;quot) fig.show()نمودار parallel coordinates:در این سبک از نمودار، هر ردیف از دیتافریم ما با یک علامت چند خطی نشان داده می شود که مجموعهای از محورهای موازی را طی می کند، که هر سطر برای یک بعد است.df = px.data.iris() fig = px.parallel_coordinates(df, color=&amp;quotspecies_id&amp;quot, labels={&amp;quotspecies_id&amp;quot: &amp;quotSpecies&amp;quot, &amp;quotsepal_width&amp;quot: &amp;quotSepal Width&amp;quot, &amp;quotsepal_length&amp;quot: &amp;quotSepal Length&amp;quot, &amp;quotpetal_width&amp;quot: &amp;quotPetal Width&amp;quot, &amp;quotpetal_length&amp;quot: &amp;quotPetal Length&amp;quot, }, color_continuous_scale=px.colors.diverging.Tealrose, color_continuous_midpoint=2) fig.show()کار روی دیتاهای بیشتر با نمودار خطی ( line ): df = px.data.gapminder() fig = px.line(df, x=&amp;quotyear&amp;quot, y=&amp;quotlifeExp&amp;quot, color=&amp;quotcontinent&amp;quot, line_group=&amp;quotcountry&amp;quot, hover_name=&amp;quotcountry&amp;quot, line_shape=&amp;quotspline&amp;quot, render_mode=&amp;quotsvg&amp;quot) fig.show()نکته: همانگونه که میبینید، تمامی این داده ها به صورت آماده در ماژول پلاتلی اکسپرس موجود است.از لحاظ اندازه، این اطلاعات از سال 1957 تا 2010 جمع آوری شده.خروجی: استفاده همین داده در scatter :میتوان با آرگومان size سایز هر نقطه را بر اساس ستونی از داده ها مقدار دهی کرد. همچنین با آرگومان log_x میتوان تراکم نقاط در نمودار را یکپارچه کرد.df = px.data.gapminder() fig = px.scatter(df.query(&amp;quotyear==2007&amp;quot), x=&amp;quotgdpPercap&amp;quot, y=&amp;quotlifeExp&amp;quot, size=&amp;quotpop&amp;quot, color=&amp;quotcontinent&amp;quot, hover_name=&amp;quotcountry&amp;quot,log_x=True, size_max=60) fig.show()نمودار pie :برای تمیز تر بودن نمودار، کشور های کوچکتر را به عنوان other countries ، جدا میکنیم.df = px.data.gapminder().query(&amp;quotyear == 2007&amp;quot).query(&amp;quotcontinent == &#039;Europe&#039;&amp;quot) df.loc[df[&#039;pop&#039;] &lt; 2.e6, &#039;country&#039;] = &#039;Other countries&#039; fig = px.pie(df, values=&#039;pop&#039;, names=&#039;country&#039;, title=&#039;Population of European continent&#039;) fig.show()لیست کشور ها قابل اسکرول بوده و تمام کشورها با جمعیت بیش از دو میلیون در این لیست هستند، و در انتهای لیست، other countries قرار دارد.نمایش نقشه درختی :این نوع نقشه را معمولا در نقشه ی بورس به کرات مشاهده کرده ای د و با عملکرد آن نیز آشنایی دارید.df = px.data.gapminder().query(&amp;quotyear == 2007&amp;quot) fig = px.treemap(df, path=[px.Constant(&#039;world&#039;), &#039;continent&#039;, &#039;country&#039;], values=&#039;pop&#039;, color=&#039;lifeExp&#039;, hover_data=[&#039;iso_alpha&#039;]) fig.show()نکته: خروجی متد gapminder() یک دیتافریم است که میزان امید به زندگی را در هفتاد سال اخیر جمع آوریکرده است. منبع آن هم از سایت gapminder.org میباشد که به جمع آوری داده های غیرقابل دسترسی معروفاست.خروجی:خب تا اینجا تقریبا یه چیزایی راجع به پلاتلی اکسپرس و نحوه پیاده سازی نمودارای مختلف رو یاد گرفتیم. توقسمتای بعدی بیشتر وارد جزییات میشیم و سعی میکنیم به شکل های حرفه ای تر نزدیک شیم.انجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیر محسن براهیمیابوالفصل شیشه گر علیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 12:09:44 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخوانه پلاتلی (Plotly)(بخش اول)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D9%88%D8%A7%D9%86%D9%87-%D9%BE%D9%84%D8%A7%D8%AA%D9%84%DB%8C-plotly%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-gs7pwlm88ljz</link>
                <description>نگاهی کلی به پلاتلی :پلاتلی یکی دیگر از ابزارهای تجسم داده برای زبان هایی مثل پایتون و جاوااسکریپت است که با زبانهایمتعددی از جمله جاوااسکریپت نوشته شده است. به دلیل اینکه زبان اصلی این کتابخانه جی اس است، سازگاریبسیاری با پیادهسازی تحت وب دارد و میتوان به این وسیله، نمودارهایی با فرمت HTML تجسم کرد.شروع کار با پلاتلی :همانگونه که قبلا گفته شده، میتوان در محیط conda با استفاده از اسم یک کتابخانه، آنرا نصب کرد.به راحتی از این کد استفاده کرده و آنرا دانلود و نصب میکنیم.conda install -c plotly plotly=5.4.0پس از نصب میتوان در محیط جوپیتر شروع به استفاده از این کتابخانه کرد. پس در قسمت بعد همراه ما باشیدمرحله بعدی ایمپورت و استفاده اولیه از این کتابخانه میباشد:import plotly.graph_objects as go fig = go.Figure(data=go.Bar(y=[2, 3, 1])) fig.write_html(&#039;first_figure.html&#039;, auto_open=True)در این قطعه کد، ابتدا کتابخانه ایمپورت شده و سپس، نمودار ساده ای تعریف شده و در مرورگر به طور خودکار نمایش داده میشود. همانگونه که مشاهده میشود، نمودار کاملا تعاملی است و نشانه ی قدرت این کتابخانه است.این صفحه ی مرورگر است که به طور خودکار توسط آرگمان « auto_open باز میشود. import plotly.graph_objects as go fig = go.Figure(data=go.Bar(y=[2, 3, 1])) fig.show()به خاطر پشتیبانی پلاتلی از جوپیتر، میتوان خروجی این نمودار را مستقیم در این محیط پیاده سازی کردکه به بازکردن مرورگر نیازی نداشته باشد. نمودار همچنان تعاملی است. پکیج پلاتلی پایتون برای ایجاد، دستکاری و ارائه اشکال گرافیکی (مانند نمودارها، نمودارها و نقشه ها) وجود داردکه توسط ساختارهای داد های که به آنها شکل ( figure ) نیز گفته میشود، استفاده میشوند.نکته: توصیه ی ما این است که برای شروع پلاتلی، از ماژول سطح بالای plotly.express که به عنوان Plotly Express نیز شناخته می شود، و از توابع پایتونی استفاده میکند، استفاده کنید. ما نیز برای شروع توابع سادهای را برای شما پیاده سازی میکنیم و بعدا به طور حرفه ای تر وارد جزییات میشویم.سر بسته Plotly Express  (px) : نمودار line : میتوان هر شکل پلاتلی که توسط Plotly Express پیاده سازی شده را توسط متد show نمایش داد و یابا متد print خروجی JSON آنرا چاپ نمود.import plotly.express as px fig = px.line(x=[&amp;quota&amp;quot,&amp;quotb&amp;quot,&amp;quotc&amp;quot], y=[1,3,2], title=&amp;quotsample figure&amp;quot) print(fig) fig.show()این px خروجی هایی از جنس کلاس px graph_object دارند که از این طریق میتوان نمودار های سریع ولی با دقت بالا درست کرد.خروجی:Figure({ &#039;data&#039;: [{&#039;hovertemplate&#039;: &#039;x=%{x}&lt;br&gt;y=%{y}&lt;extra&gt;&lt;/extra&gt;&#039;, &#039;legendgroup&#039;: &#039;&#039;,&#039;line&#039;: {&#039;color&#039;: &#039;#636efa&#039;, &#039;dash&#039;: &#039;solid&#039;},&#039;mode&#039;: &#039;lines&#039;,&#039;name&#039;: &#039;&#039;,&#039;orientation&#039;: &#039;v&#039;,&#039;showlegend&#039;: False,&#039;type&#039;: &#039;scatter&#039;,&#039;x&#039;: [a, b, c],&#039;xaxis&#039;: &#039;x&#039;,&#039;y&#039;: array([1, 3, 2], dtype=int64),&#039;yaxis&#039;: &#039;y&#039;}],&#039;layout&#039;: {&#039;legend&#039;: {&#039;tracegroupgap&#039;: 0},&#039;template&#039;: &#039;...&#039;,&#039;title&#039;: {&#039;text&#039;: &#039;sample figure&#039;},&#039;xaxis&#039;: {&#039;anchor&#039;: &#039;y&#039;, &#039;domain&#039;: [0.0, 1.0], &#039;title&#039;: {&#039;text&#039;: &#039;x&#039;}},&#039;yaxis&#039;: {&#039;anchor&#039;: &#039;x&#039;, &#039;domain&#039;: [0.0, 1.0], &#039;title&#039;: {&#039;text&#039;: &#039;y&#039;}}}})شکل:حال به شکل های مختلفی میتوان از این ماژول برای رسم نمودار استفاده کرد.برای مثال نمودار scatter تعریف میکنیم:df = px.data.iris() fig = px.scatter(df, x=&amp;quotsepal_width&amp;quot, y=&amp;quotsepal_length&amp;quot, color=&amp;quotspecies&amp;quot, title=&amp;quotA Plotly Express Figure&amp;quot) fig.show()همانگونه که مشاهده میکنید، برای نام لجند مثال ازآرگمان color استفاده کردیم.خروجی:توجه داشته باشید که تمام این خروجی ها صرفا عکس از نمودار نمیباشد و به تعاملات کاربر عمل میکند.پارامتر px اما جدی تر :خب تا اینجا کمی با پلاتلی اکسپرس آشنا شدیم، حال میخواهیم وارد جزئیات آن شویم:ماژول plotly.express (معمولاً به صورت px وارد میشود) حاوی توابعی است که میتوانند کل فیگورها را دریک زمان ایجاد کنند و به آن Plotly Express یا PX میگویند. پلاتلی اکسپرس بخشی داخلی از کتابخانهنموداری است و نقطه شروع توصیه شده برای ایجاد اکثر فیگورها است. هر تابع پلاتلی اکسپرس به صورت داخلیاز اشیاء گراف استفاده می کند و نمونه ای از plotly.graph_objects.Figure را برمی گرداند. در طولمستندات پلاتلی، شما در بالای هر صفحه ی قابل اجرا روش ساخت هرشکل در پلاتلی اکسپرس را خواهید دید،که به دنبال آن بخشی در مورد نحوه استفاده از اشیاء نمودار برای ساختن شکل های مشابه وجود دارد. هر شکلیکه در یک فراخوانی تابع با پلاتلی اکسپرس ایجاد می شود، می تواند تنها با استفاده از اشیاء نمودار ایجاد شود ،اما با کد بین 5 تا 100 برابر بیشتر.پلاتلی اکسپرس بیش ا ز 30 تابع را برای ایجاد انواع مختلف ارائه می ده د. این API برای این توابع به گونه ایبا دقت طراحی شده که تا ح د امکان سازگار و آسان برای یادگیری باش د و تغییر بین اشکال از نمودار پراکندگیبه نمودار میله ای، به هیستوگرام یا به نمودار خورشیدی در طول یک داده کاوی را آسان می کن د.از بین این سی تابع، تعدادی را در این آموزش، توضیح میدهیم:• Basics: scatter, line, area, bar• Part-of-Whole: pie• 1D Distributions: histogram, boxتعدادی از این توابع قبلا مثال زده شده و برای بقیه، نیز مثالهایی آورده میشود.ادامه مطلب را در قسمت بعدی بخوانید ...انجمن هوش مصنوعی دانشگاه اصفهاناحسان قیچی سازامیرمحسن براهیمیابوالفضل شیشه گرعلیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 22 Dec 2021 11:41:59 +0330</pubDate>
            </item>
                    <item>
                <title>ماشین لرنینگ در زندگی روزمره</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%84%D8%B1%D9%86%DB%8C%D9%86%DA%AF-%D8%AF%D8%B1-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-%D8%B1%D9%88%D8%B2%D9%85%D8%B1%D9%87-lxpjypptzved</link>
                <description>امروزه اینترنت و شبکه های اجتماعی نقش پررنگی در فعالیت های روزمره ما دارد که در حقیقت بخشی از آن نتیجه استفاده از هوش مصنوعی و یادگیری ماشین است که نشان دهنده اهمیت یادگیری ماشین در فعالیت های مختلف ماست در این مقاله میخواهیم چند مورد از کاربرد های رایج یادگیری ماشین را معرفی کنیم.1)تشخیص چهره:اغلب ما برای به اشتراک گذاشتنن افکار و احساساتمان با دیگران از شبکه های اجتماعی مختلفی استفاده میکنیم ،که یادگیری ماشین کاربرد گسترده ای در این شبکه های اجتماعی دارد برای مثال در برنامه فیسبوک زمانی که ما عکسی برای دوستان خود آپلود میکنیم ، به طور خودکار با نام هایمان تگ میشویم . این بر اساس پروژه فیسبوک به نام deep Face (چهره عمیق)است که می تواند با دقت 97.25 درصد، تصاویر متعلق به یک شخص را تشخیص داده ، صفحات مختلف را به هم ربط داده و استنتاج های مورد نیاز فیسبوک را در اختیار قرار دهد. پروژه deep Face می تواند 4000 جز از ظرایف صورت انسانی را مورد بررسی قرار داده و تصاویر را تشخیص دهد این ویژگی یکی از اشکال محبوب کاربرد تکنولوژی یادگیری ماشین در شبکه های اجتماعی است.2)تشخیص گفتار:ممکن است درمواردی پیش آمده باشد که امکان تایپ کردن نداشته باشیم،در این جور مواقع گوگل آپشنی دارد به نام جستجوی صوتی . در این تکنولوژی از الگوریتم های یادگیری ماشین استفاده شده است در واقع تشخیص گفتار این گونه عمل میکند که دستورالعمل های صوتی را به دستورالعمل های متنی تبدیل کند.در حال حاضر برنامه های Google assistant, Siri, Cortana,  Alexa از این تکنولوژی استفاده میکنند.3)پیش بینی ترافیک:زمانی که ما به شهر جدیدی سفر می کنیم که به مسیر های آن آشنایی نداریم شاید ساعت ها زمان ببرد که مسیر درست را پیدا کنیم و به مقصد برسیم و حتی زمان زیادی را در ترافیک بگذرانیم در حالی که مسیر های بهتری برای رسیدن به مقصدمان هست.تا قبل از سال 2017 پروژه Google Map صرفا یک نقشه آنلاین از تمام جهان بود اما بعد از این سال، گوگل قابلیت های یادگیری ماشین و یادگیری عمیق را به این سرویس خود اضافه کرده . الگوریتم های یادگیری ماشین، به نرم افزارها کمک می کنند تا نام خیابان ها و شماره خانه ها را از روی عکس هایی که از آن خیابان ها گرفته شده، استخراج کنند تا نتایج جستجو دقیق تر شونند.با مجموع 80 میلیارد تصویری که از خیابان ها در دیتابیس گوگل موجود می باشد، این استخراج نام ها با دقت 84.2 درصد در حال انجام است.این برنامه همچنین  به کمک مکان خودرو و میانگین زمان در روز های گذشته شرایط ترافیکی را پیش بینی میکند.هرشخصی که از Google Map استفاده میکند به عملکرد بهتر برنامه کمک میکند زیرا برنامه اطلاعات را از کاربر میگیرد و برای بهبود عملکرد به پایگاه داده خود میفرستد.4)خرید هوشمند و تبلیغات پیشنهادی:امروزه به دلیل تنوع زیاد محصولات و خرید آسان تر و در زمان کمتر خرید اینترنتی گزینه بهتری برای اغلب افراد است ، شرکت های معتبری مثل Amazon که از بزرگ ترین فروشگاه های آنلاین آمریکا است پیوسته کاربران را در معرض یادگیری ماشین قرار میدهد.هنگامی که ما محصولی را خریداری میکنیم الگوریتم های یادگیری ماشین علاقه های مارا یاد میگیرند و اطلاعاتی را جمع آوری میکنند سپس بر اساس آن محصولاتی جدید که با سلیقه ما همخوانی دارد را پیشنهاد میدهند.این الگوریتم های یادگیری ماشین در موارد مشابه مثل سایت Netflix با توجه به جستجو های ما علاقه مارا درک میکنند و بر مبنای آن فیلم های مشابه را به ما پیشنهاد میکند5)خودرو های خودران:اگر شما هم نیم‌‌نگاهی به پیشرفت‌های بشر در زمینۀ خودروسازی و هوشمندسازی آن‌ها بیاندازید، احتمالاً خودروهای خودران خیلی هم عجیب و غریب به‌نظر نمی‌رسد. اصلی ترین بخشی که در عملکرد این خودرو ها میدرخشد، هوش مصنوعی آن هاست که بر مبنای الگوریتم های یادگیری ماشین است .تسلا محبوب ترین شرکت خودرو سازی  در حال کار بر روی خودرو های خودران است و در سال های اخیر سرمایه گذاری زیادی در این زمینه کرده است،آن ها از متد های  یادگیری بدون نظارت برای آموزش مدل های ماشین برای تشخیص افراد و اشیاء در حین رانندگی استفاده می کنند که احتمال تصادف را کاهش میدهد.6)دستیار شخصی مجازی: ما دستیارهای شخصی مجازی مختلفی مانند Google assistant, Alexa, Cortana, Siri داریم. همانطور که از نام آن پیداست، آنها به ما در یافتن اطلاعات با استفاده از آموزش صوتی کمک می کنند. این دستیارها فقط با دستورالعمل‌های صوتی مانند پخش موسیقی، تماس با کسی، باز کردن ایمیل، برنامه‌ریزی یک قرار و غیره می‌توانند به روش‌های مختلف به ما کمک کنند. این دستیار، دستورالعمل‌های صوتی ما را ضبط می‌کند، آن را روی سرور در یک ابر ارسال می‌کند، و آن را با استفاده از الگوریتم‌های ML رمزگشایی می‌کند و مطابق با آن عمل می‌کند.مایکروسافت، گوگل، اپل و آمازون با دستیاران هوشمند صوتی خود یعنی کورتانا ، دستیار گوگل Google assistant ، سیری و الکسا در حال رقابت با هم هستند. و در آزمایشی که به تازگی توسط Loup Ventures انجام شده است، دستیار گوگل قادر به پاسخ‌گویی صحیح به بیشترین سوالات بوده است.7)معاملات بازار سهام:یادگیری ماشین اطلاعات پیشرفته ای از بازار را ارائه می دهد. با استفاده از یادگیری ماشین ، مدیران صندوق ، تغییرات بازار را زودتر از زمان مدل های سرمایه گذاری سنتی ، شناسایی می کنند. در بازار سهام، همیشه خطر بالا و پایین رفتن سهام وجود دارد، بنابراین از شبکه عصبی حافظه کوتاه مدت ماشین لرنینگ برای پیش بینی روند بازار سهام استفاده می شود. موسسات بزرگی مثل JPMorgan ، Bank of America و Morgan Stanley مشاوران سرمایه گذاری خودکار را توسعه داده اند. این ها با فناوری یادگیری ماشین کار می‌کنند8)تشخیص پزشکی:ماشین لرنینگ در زمینه پزشکی نقش یک ابر ذهن که درون آن افکار هزاران پزشک قرار می‌گیرد ومی‌تواند به بهترین شکل یک بیماری را پیش‌بینی کند را ایفا می‌کند.یکی از مهم‌ترین اهدافی که در پزشکی وجود دارد، زمینه پیش‌بینی کردن بیماری‌ها و تشخیص‌های بسیار خاص و با اهمیت می‌باشد. مثل تشخیص سرطان و درمان آن!مدل‌های ماشین لرنینگ، تشکیل شده از مجموعه‌ای از دیتاهایی می‌باشد که در گذشته بر روی بیماران تست شده است و در حال حاضر جمع آوری شده و در دسترس می‌باشد.علاوه بر آن فناوری پزشکی بسیار سریع در حال رشد است و قادر به ساخت مدل های سه بعدی است که می تواند موقعیت دقیق ضایعات را در مغز پیش بینی کند. این به یافتن تومورهای مغزی و سایر بیماری های مرتبط با مغز به راحتی کمک می کند.9)ترجمه خودکار زبان:همه ما گوگلترنسلیت(google Translate) را می شناسیم و عاشق آن هستیم، وب سایتی که می تواند فورا چیزی بین ۱۰۰ زبان مختلف بشر را ترجمه کند؛ مانند یک جادو! تکنولوژی پشت این برنامه الگوریتم های  ماشین لرنینگ است.مترجم گوگل می‌تواند از یک زبان به زبان دیگر ترجمه کند، حتی اگر دو زبان انتخاب شده پیش از این توسط سیستم انتخاب نشده باشند. برای مثال یک سیستم چند زبانه را تصور کنید که برای ترجمه از زبان ژاپنی به انگلیسی و یا کره‌ای به انگلیسی آموزش دیده است. این سیستم علی‌رغم اینکه هیچ‌گونه آموزشی درباره ترجمه از کره‌ای به ژاپنی دریافت نکرده، با استفاده از آموخته‌های قبلی خود این کار را انجام می‌دهد.همه این ها نشان میدهد که هوش مصنوعی در ساده ترین فعالیت های روزانه ما دخیل است. این ها تنها  مثال های ساده ای از کاربرد های ماشین لرنینگ در اطراف ماست که همگی ابزاری برای ارتقا سطح زندگی انسان است.دامنه کاربرد های ماشین لرنینگ بسیار وسیع است برای مثال در تجارت صنعت و  پزشکی بسیار کاربرد دارد و همچنان در حال رشد است.منابع :https://www.javatpoint.com/applications-of-machine-learninghttps://www.simplilearn.com/tutorials/machine-learning-tutorial/machine-learning-applicationshttps://searchenterpriseai.techtarget.com/feature/10-common-uses-for-machine-learning-applications-in-businesshttps://www.salesforce.com/eu/blog/2020/06/real-world-examples-of-machine-learning.htmlعاطفه علی محمدی </description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Mon, 13 Dec 2021 23:03:45 +0330</pubDate>
            </item>
                    <item>
                <title>ماشینی که فکر کند؟</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%A7%D8%B4%DB%8C%D9%86%DB%8C-%DA%A9%D9%87-%D9%81%DA%A9%D8%B1-%DA%A9%D9%86%D8%AF-zh599vyju6o9</link>
                <description>چه چیزی یک ماشین را هوشمند میکند ؟ امروزه یادگیری ماشینی آنقدر فراگیر شده است که احتمالاً روزانه ده ها بار ناخوداگاه از آن استفاده می کنید.در دهه گذشته، به لطف یادگیری ماشینی ، استفاده ازاین فناوری در قالب ماشین های خودران، تشخیص گفتار ، جستجوی بهینه وب و درک بهتر ژنوم انسان ممکن شده است . بسیاری از محققان بر این باورند که این علم بهترین راه برای پیشرفت هوش مصنوعی به سطح هوش انسانی است . در این مقاله به معرفی یادگیری ماشین می پردازیم .قبل از پرداختن به تعریف این دانش ، بهتر است نگاه عمیق تری به پیش زمینه های آن داشته باشیم .بر خلاف ظاهر ، این فناوری دارای ریشه های قدیمی در علوم گوناگون میباشد. از جمله آن ها  :· علوم آمار· نظریه اطلاع· فلسفهیادگیری ماشینی زیرمجموعه ای از هوش مصنوعی است که در آن از الگوریتم های کامپیوتری برای یادگیری به صورت خودکار از داده ها و اطلاعات استفاده می شود. در یادگیری ماشینی، بر خلاف برنامه نویسی سنتی، کامپیوترها به طور صریح برنامه نویسی نمی شوند، بلکه طوری برنامه نویسی میشوند تا بتوانند الگوریتم های خود را به تنهایی تغییر داده و بهبود ببخشند.در سال 1950 ، آلن تورینگ، تست تورینگ  را ایجاد می کند تا تشخیص دهد که آیا یک کامپیوتر هوش واقعی دارد یا خیر. برای قبولی در آزمون، یک کامپیوتر باید بتواند یک انسان را فریب دهد تا باور کند که او نیز انسان است.  تورینگ براساس مشاهدات خود راهی برای آموزش ماشین پیشنهاد داد: درست همانند آموزش به یک کودک، ابتدا باید مقدار زیادی اطلاعات را به او داد . سپس به او بگوییم که با آنها چکار کند. ماشین هم با یافتن الگوهای موجود ، مدلی را طراحی کند .حدود 2 سال بعد، آرتور ساموئل اولین برنامه یادگیری کامپیوتر را نوشت. این برنامه بازی چکرز(checkers) بود، و کامپیوتر آی‌بی‌ام هر چه بیشتر بازی می‌کرد، در این بازی پیشرفت می‌کرد و بررسی می‌کرد که کدام حرکات استراتژی‌های برنده را تشکیل می‌دادند و آن حرکات را در برنامه خود می گنجاند.با مرور زمان شرکت های بیشتری به سمت این فناوری کشیده میشوند . نظیر آمازون،گوگل و مایکروسافت و... . در شکل زیر میتوانید خط زمانی یادگیری ماشین را مشاهده کنید.تکنیک‌های مبتنی بر یادگیری ماشینی در زمینه‌های مختلفی از جمله تشخیص الگو، بینایی کامپیوتر، مهندسی هوافضا، اقتصاد، سرگرمی و زیست‌شناسی محاسباتی تا کاربردهای زیست‌پزشکی و پزشکی با موفقیت استفاده شده‌ است.با پیشرفت دانش یادگیری ماشین، استفاده از آن در زمینه های مختلف بازتاب های مختلفی را شاهد بوده است. با به وجود آمدن فناوری دیپ فیک(deep fake) ، افراد مختلف میتوانند سلایق و تمایلات شخصی خود را در آن دخیل کنند. مانند استفاده از چهره مشاهیر برای انتقال یک پیام.برخی نیز آن را عاملی برای پیشرفت بشر در عرصه های مختلف نظیر پزشکی و داروسازی میدانند.شما چه فکری میکنید؟منابعhttps://link.springer.com/https://www.forbes.com/https://www.sas.com/https://www.ibm.com/https://amerandish.com/https://blog.faradars.org/انجمن هوش مصنوعی دانشگاه اصفهانعلی اکبر احراری </description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 16:04:00 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه seaborn (بخش سوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-atrm5smk6jwq</link>
                <description>نمودار های BarPlotنمودار های Bar plot یا نمودار میله ای رابطه بین یک متغیر عددی و یک متغیر طبقه ای را نشان میدهد. این تابع پارامتر های مختلفی میگیرد .دو تا از مهم ترین پارامتر های این تابع :متغیر محور افقی نمودار : Xمتغیر محور عمودی نمودار : Yplt.figure(figsize=(20,7))sns.barplot(x=pokemon[&#039;Type 1&#039;], y= pokemon[&#039;Attack&#039;])plt.show()مرتب سازی نمودار براساس یک متغیر به کمک متد groupby():plt.figure(figsize=(20,7))order = pokemon.groupby([&#039;Type 1&#039;]).mean().sort_values(&#039;Defense&#039; , ascending = False).indexsns.barplot(x=pokemon[&#039;Type 1&#039;], y= pokemon[&#039;Defense&#039;] , order=order)plt.show()در نمونه ی بالا، نمودار براساس متغیرDefence  به طور نزولی مرتب شده است.نمودار count یک مورد خاص برای نمودار میله ای زمانی است که می خواهید تعداد مشاهدات هر دسته را به جای محاسبه آماری برای متغیر دوم نمایش دهید.titanic = sns.load_dataset(&amp;quottitanic&amp;quot) #load datasetsns.catplot(x=&amp;quotdeck&amp;quot, kind=&amp;quotcount&amp;quot, palette=&amp;quotch:.25&amp;quot, data=titanic)نمودار مدل های رگرسیون (regression):در کتابخانه ی Seaborn می توانیم در نمودارهای scatter خط رگرسیون رسم کنیم جهت بررسی مجدد قدرت رابطه ی بین داده ها و یا پیدا کردن بهترین خط  که با داده ها مطابقت دارد:نمودار RegPlotتابع RegPlot() با گرفتن متغیر های x و y مدل رگرسیون را روی آن اعمال می کند مانند زیر:tips = sns.load_dataset(&amp;quottips&amp;quot) #load datasetsns.regplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, data=tips)نمودار ResidPlotبرای بررسی اینکه آیا مدل رگرسیون ساده می تواند برای دیتاست به کار گرفته شده مناسب باشد یا خیر از دستور زیر استفاده می کنیم:anscombe = sns.load_dataset(&amp;quotanscombe&amp;quot) #load datasetsns.residplot(x=&amp;quotx&amp;quot, y=&amp;quoty&amp;quot, data=anscombe.query(&amp;quotdataset == &#039;I&#039;&amp;quot), scatter_kws={&amp;quots&amp;quot: 80})به دلیل اینکه مقادیر به صورت پراکنده اطراف خط y=0 قرار گرفته اند، مدل رگرسیون ساده مناسب برای این دیتاست می باشد.sns.residplot(x=&amp;quotx&amp;quot, y=&amp;quoty&amp;quot, data=anscombe.query(&amp;quotdataset == &#039;II&#039;&amp;quot), scatter_kws={&amp;quots&amp;quot: 80})در این حالت مقادیر اطراف خط y=0 پراکنده نیستند و نظم خاصی دارند، پس میتوان گفت رگرسیون ساده مناسب این دیتاست نیست.نمودار LmPlotبرای بررسی وضعیت داده مورد نظر نسبت به سایر متغیر ها از دستور زیر کمک می گیریم:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, data=tips)همچنین می توان به شکل زیر وضعیت یک متغیر را مشروط به متغیر یا متغیر های دیگر بررسی کنیم:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, col=&amp;quottime&amp;quot, data=tips)پارامتر های row, col متغیرهایی که زیرمجموعه ها را برای ترسیم در وجوه مختلف تعریف می کنند:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, col=&amp;quottime&amp;quot, row=&amp;quotsex&amp;quot, data=tips)برای تغییر اندازه ی نمودار های regplot() همانند آنچه که در کتابخانه ی matplotlib.pyplot انجام می دادیم، عمل میکنیم:f, ax = plt.subplots(figsize=(5, 6))sns.regplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, data=tips, ax=ax)ولی برای تغییر اندازه ی نمودار های lmplot() مسیر متفاوت است و طبق قطعه کد زیر پیش می رویم:sns.lmplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, col=&amp;quotday&amp;quot, data=tips, col_wrap=2, height=3)منبع آموزش : وبسایت کتابخانه ی Seabornو در پایان باید بگم که سعی کردیم تو این مقاله بهترین و کاربردی ترین توابع کتابخانه ی سیبورن را براتون بگیم که بتونید این کتابخونه رو خیلی سریع و با کیفیت بالا یادش بگیرید ولی چیزی که میتونه شما رو بیشتر موفق کنه، اینه که تمرین کنید!موفق باشید!انجمن هوش مصنوعی دانشگاه اصفهان محمد جعفرپور مریم سادات صفوی دانیال توکلی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 13:29:19 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه seaborn (بخش دوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-bjjiecxyfq6n</link>
                <description>نمودارهای توزیعی (Distributions):یکی از مهم ترین گام ها برای تحلیل داده ها، بررسی گستردگی و پراکندگی مقادیر است. نمودار های گوناگونی برای این کار وجود دارند که مهمترین آنها نمودار هیستوگرام (Histogram) می باشد:نمودار های DisPlotابتدا دیتاست &quot;penguins&quot; را اضافه می کنیم، سپس گستردگی مقادیر ستون &quot;flipper_length_mm&quot; را بررسی می کنیم:penguins = sns.load_dataset(&amp;quotpenguins&amp;quot) #load datasetsns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kde=False)زمانیکه مقدار فراپارامتر kde برابرTrue باشد، علاوه برنمودارهیستوگرام ، یک نمودار چگالی نیز خواهیم داشت:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kde=True)وقتیکه شما پراکندگی داده ای را بررسی کردید گام بعدی این است که از خود بپرسید وضعیت این داده نسبت به سایر مقادیر دیتاست چگونه است؟ برای پاسخ دادن به این سوال طبق دستور زیر عمل می کنیم:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, hue=&amp;quotsex&amp;quot)همانطور که قبلا گفتیم فراپارامتر hue بسیار کاربردی است.برای نمونه، در مثال بالا به کمک فراپارامتر hue گستردگی ستون &quot;flipper_length_mm&quot; را نسبت به جنسیت بررسی کردیم.همچنین می توان نمودار بالا را به صورت زیر تجزیه کنیم:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, col=&amp;quotsex&amp;quot)به نمودار های چگالی بالاتر اشاره ای شد، برای رسم نمودار های kde به شکل زیر عمل می کنیم:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kind=&amp;quotkde&amp;quot)تمام فراپارامتر هایی که در بالا آموزش داده شد برای kdeplot ها نیز بکار می روند:sns.displot(penguins,x=&amp;quotflipper_length_mm&amp;quot,hue=&amp;quotsex&amp;quot,kind=&amp;quotkde&amp;quot,fill=True)نمودار تابع توزیع تجربی (ecdf) یکی از ابزار های بررسی گستردگی داده است و هر نقطه در این نمودار روی محور عمودی بیانگر درصد مشاهداتی روی محور عمودی است که از آن نقطه کمتر هستند:sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, kind=&amp;quotecdf&amp;quot)برای نمونه برآورد تابع توزیع تجربی در نقطه ی 210 حدودا برابر 70 درصد می باشد.sns.displot(penguins, x=&amp;quotflipper_length_mm&amp;quot, hue=&amp;quotspecies&amp;quot, kind=&amp;quotecdf&amp;quot)نکته مهم نمودارهای تابع توزیع تجربی این است که به دلیل وجود روند افزایشی برای مقایسه چند ویژگی مناسب تر است.در مثال های بالا فقط توزیع های تک متغیره و البته تک متغیره ی مشروط به متغیر دوم در نظر گرفته شده اند، ولی از این پس پراکندگی های دو متغیره مورد بررسی قرار می گیرند:sns.displot(penguins, x=&amp;quotbill_length_mm&amp;quot, y=&amp;quotbill_depth_mm&amp;quot, cbar=True)sns.displot(penguins, x=&amp;quotbill_length_mm&amp;quot, y=&amp;quotbill_depth_mm&amp;quot, kind=&amp;quotkde&amp;quot)نمودار های PairPlot, PairGridهمچنین می توان به جای تمرکز بر یک رابطه، از یک رویکرد برای تجسم پراکندگی تک متغیره ی همه ی مقادیر در یک مجموعه استفاده کرد:sns.pairplot(penguins)می توان در نمونه بالا نمودار های بالا مثلثی و پایین مثلثی و قطر مثلث این مجموعه را تغییر داد، مانند زیر:g = sns.PairGrid(penguins)g.map_upper(sns.histplot)g.map_lower(sns.kdeplot, fill=True)g.map_diag(sns.histplot, kde=True)نمودارهای دسته بندی :(Categorical)دسته بندی اطلاعات از تاثیرگذاری بالایی در تحلیل داده ها و تصمیم گیری براساس آنها برخوردار است بنابراین کتابخانه ی Seaborn این امکان را به ما میدهد که داده های خود را طبقه بندی کنیم:نمودار های CatPlotنمودار های cat plot دسترسی به چندین تابع در سطح محور را فراهم میکند. که رابطه بین یک متغیر عددی و یک یا چند متغیر طبقه ای را نمایش میدهد.به وسیله متد figure() ابعاد نمودار را تعیین می کنیم. (به کمک کتابخانه ی matplotlib.pyplot):pokemon = pd.read_csv(&amp;quotpokemon.csv&amp;quot) #load datasetplt.figure(figsize=(10,6))sns.catplot(y = &amp;quotType 1&amp;quot, kind = &amp;quotcount&amp;quot,data = pokemon)plt.show()برای تجسم وضعیت یک متغیر نسبت به متغیر دیگر در چند نمودار از col استفاده می کنیم:plt.figure(figsize=(20,20))sns.catplot(x=&#039;Generation&#039; , y=&#039;Defense&#039; , data=pokemon , col=&amp;quotLegendary&amp;quot)متد jitter بزرگی جیتر را کنترل میکند یا آن را به طور کلی غیر فعال میکند:sns.catplot(x=&amp;quotGeneration&amp;quot, y=&amp;quotDefense&amp;quot, jitter=False, data=pokemon)همانطور که پیش از این گفتیم به کمک hue می توانیم نموداری تک متغیره مشروط به متغیری دیگر داشت:tips = pd.read_csv(&amp;quottips.csv&amp;quot) #load datasetsns.catplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quotday&amp;quot, hue=&amp;quottime&amp;quot, kind=&amp;quotswarm&amp;quot, data=tips)نمودار box سه مقدار چارک توزیع را به همراه مقادیر شدید نشان میدهد.sns.catplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, kind=&amp;quotbox&amp;quot, data=tips)نمودار boxen شبیه نمودار جعبه ای است اما برای نمایش اطلاعات بیشتر در مورد شکل توزیع بهینه شده است:diamonds = sns.load_dataset(&amp;quotdiamonds&amp;quot) #load datasetsns.catplot(x=&amp;quotcolor&amp;quot, y=&amp;quotprice&amp;quot, kind=&amp;quotboxen&amp;quot,data=diamonds.sort_values(&amp;quotcolor&amp;quot))به کمک violin میتوانید از تخمین تراکم هسته برای نشان دادن توزیع اساسی که از آن نقطه نمونه برداری میشود, استفاده کنید:plt.figure(figsize=(7,7))sns.catplot(x=&amp;quotGeneration&amp;quot, y = &amp;quotSpeed&amp;quot, kind=&amp;quotviolin&amp;quot, data=pokemon)plt.show()فراپارامتر split ولیون ها را زمانی که فراپارامتر hueدو سطح دارد، میتوان تقسیم کرد بصورتی که میتواند استفاده بهینه تر از فضا را امکان پذیر کند:sns.catplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, hue=&amp;quotsex&amp;quot, kind=&amp;quotviolin&amp;quot, split=True, data=tips)ترکیب swarmplot با نمودار جعبه ای یا ویولن برای نمایش هر مشاهده همراه با خلاصه ای از توزیع میتواند مفید باشد.g = sns.catplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, kind=&amp;quotviolin&amp;quot, inner=None, data=tips)sns.swarmplot(x=&amp;quotday&amp;quot, y=&amp;quottotal_bill&amp;quot, color=&amp;quotk&amp;quot, size=3, data=tips, ax=g.ax)ادامه مطلب را در قسمت بعد بخوانید ...انجمن هوش مصنوعی دانشگاه اصفهان  محمد جعفرپور مریم سادات صفوی دانیال توکلی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 13:05:29 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه seaborn (بخش اول)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-seaborn-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-vevfruzcq4ne</link>
                <description>کتابخانه seaborn چیست؟کتابخانه seaborn یک کتابخانه تجسم داده پایتون بر اساس matplotlibاست. این یک رابط سطح بالا برای ترسیم گرافیک های آماری جذاب و آموزنده فراهم می کند.چرا کتابخانه seaborn را انتخاب کنیم؟1) به شما کمک میکند داده های خود را کشف و درک کنید.2) توابع رسم آن بر روی قاب های داده و آرایه های حاوی مجموعه داده های کامل عمل می کند.3) رابط برنامه نویسی اپلیکیشن(API)اعلانی مبتنی بر مجموعه داده به شما این امکان را می دهد که به جای تمرکز روی جزئیات نحوه ترسیم آنها، روی عناصر مختلف نمودارهای خود تمرکز کنید.نصب seaborn1) به کمک دستور pippip install seaborn1) با استفاده از محیط Anacondaconda install seabornبرای اطلاعات بیشترروی این لینک کلیک کنید.بعد از نصب آن میتوانید آن را با کلمه کلیدی importبه برنامه ی خود اضافه کنید و برای سهولت کار در فراخوانی آن میتوان برای کتابخانه یک اسم جایگزین انتخاب کرد:import seaborn as snsشروع کار با seabornدر ابتدا باید کتابخانه های مورد نظر خود را به برنامه اضافه کنیم و از نام اختصاری آنها در برنامه ی خود استفاده می کنیم:import numpy as npimport pandas as pdimport matplotlib.pyplot as pltنمودار های روابط آماری:همانطور که میدانید پیدا کردن الگوی بین داده ها و بررسی روابط آماری میان مقادیر یک دیتاست منجر به درک درست و تحلیلی مناسب می شود.تابع RelPlot:این تابع دسترسی به چندین تابع مختلف در سطح محور را فراهم می کند که رابطه بین دو متغیر را با نگاشت معنایی زیر مجموعه ها نشان می دهد.tips = sns.load_dataset(&amp;quottips&amp;quot) #load datasetsns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, data=tips)به کمک فراپارامتر hue می توانیم وضعیت یک متغیر را نسبت به یک متغیر دیگر در یک نمودار تجسم کنیم. (این فراپارامتر در این کتابخانه بسیار مهم و کاربردیست و در ادامه زیاد استفاده می شود):sns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, hue=&amp;quotsmoker&amp;quot, data=tips)به کمک فراپارامتر Size ، می توان مقادیر را بر اساس اندازه گروه بندی کنیم:sns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, size=&amp;quotsize&amp;quot, data=tips)اندازه ی عناصر نمودار بالا را به کمک Sizes می توانیم تغییر دهیم:sns.relplot(x=&amp;quottotal_bill&amp;quot, y=&amp;quottip&amp;quot, size=&amp;quotsize&amp;quot, sizes=(15, 200), data=tips)فراپارامتر kind نوعی طرح برای ترسیم بوده که دارای دو گزینه ی line و scatter  است:df = pd.DataFrame(dict(time=np.arange(500), value=np.random.randn(500).cumsum()))g = sns.relplot(x=&amp;quottime&amp;quot, y=&amp;quotvalue&amp;quot, kind=&amp;quotline&amp;quot, data=df)g.figure.autofmt_xdate()از آنجایی که همیشه نمودار relplot، y را به عنوان تابعی از x رسم می کند اگر فراپارامتر Sort برابر False قرار گیرد مقادیر ما نامرتب روی نمودار پیاده سازی می شوند:df = pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0), columns=[&amp;quotx&amp;quot, &amp;quoty&amp;quot])sns.relplot(x=&amp;quotx&amp;quot, y=&amp;quoty&amp;quot, sort=False, kind=&amp;quotline&amp;quot, data=df)فراپارامتر markers شی تعیین کننده نحوه رسم نشانگرها برای سطوح مختلف متغیر سبک است. تنظیم روی True از نشانگرهای پیش‌فرض استفاده می‌کند، یا می‌توانید فهرستی از نشانگرها یا سطوح نگاشت فرهنگ لغت متغیر سبک را به نشانگرها منتقل کنید. با تنظیم روی False خطوط بدون نشانگر ترسیم می شود.فراپارامتر dashes شی تعیین کننده نحوه رسم خطوط برای سطوح مختلف متغیر سبک است. تنظیم روی True  از کدهای خط تیره پیش‌فرض استفاده می‌کند، یا می‌توانید فهرستی از کدهای خط تیره یا سطوح نگاشت فرهنگ لغت متغیر سبک را به کدهای خط تیره منتقل کنید. تنظیم روی False از خطوط ثابت برای همه زیر مجموعه ها استفاده می کندfmri = sns.load_dataset(&amp;quotfmri&amp;quot) #load datasetsns.relplot(x=&amp;quottimepoint&amp;quot, y=&amp;quotsignal&amp;quot, hue=&amp;quotregion&amp;quot, style=&amp;quotevent&amp;quot, dashes=False, markers=True, kind=&amp;quotline&amp;quot, data=fmri)پارامتر های row, col متغیرهایی که زیرمجموعه ها را برای ترسیم در وجوه مختلف تعریف می کنند:sns.relplot(x=&amp;quottimepoint&amp;quot, y=&amp;quotsignal&amp;quot, hue=&amp;quotsubject&amp;quot,col=&amp;quotregion&amp;quot, row=&amp;quotevent&amp;quot, height=3, kind=&amp;quotline&amp;quot, estimator=None, data=fmri)متغیر aspect نسبت ابعاد هر وجه به صورت ارتفاع * عرض هر وجه را به اینچ می دهد:sns.relplot(x=&amp;quottimepoint&amp;quot, y=&amp;quotsignal&amp;quot, hue=&amp;quotevent&amp;quot, style=&amp;quotevent&amp;quot, col=&amp;quotsubject&amp;quot, col_wrap=5, height=3, aspect=.75, linewidth=2.5, kind=&amp;quotline&amp;quot, data=fmri.query(&amp;quotregion == &#039;frontal&#039;&amp;quot))تابع Cubehelix Paletteتابع cubehelix_palette() یک نقشه رنگی با روشنایی خطی کاهش (یا افزایش) تولید می کند.این تابع به کاربر کنترل بیشتری بر ظاهر پالت می دهد و مجموعه ای از پیش فرض های متفاوت دارد:dots = sns.load_dataset(&amp;quotdots&amp;quot).query(&amp;quotalign == &#039;dots&#039;&amp;quot)palette = sns.cubehelix_palette(light=.8, n_colors=6)sns.relplot(x=&amp;quottime&amp;quot, y=&amp;quotfiring_rate&amp;quot, hue=&amp;quotcoherence&amp;quot, style=&amp;quotchoice&amp;quot, palette=palette, kind=&amp;quotline&amp;quot, data=dots)ادامه مطلب را در قسمت بعد بخوانید ...انجمن هوش مصنوعی دانشگاه اصفهانمحمد جعفرپورمریم سادات صفویدانیال توکلی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Tue, 07 Dec 2021 12:16:30 +0330</pubDate>
            </item>
                    <item>
                <title>شاخه های تحول قرن</title>
                <link>https://virgool.io/pubUIAI/%D8%B4%D8%A7%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D9%88%D9%84-%D9%82%D8%B1%D9%86-zxqhcngfwl3k</link>
                <description>1.منطق فازی منطق دیجیتال تنها دوحالت دارد که این دوحالت، درست و نادرست هستند اما در واقعیت هیچ چیز مطلقا سیاه یا سفید نیست بلکه خاکستری است و دراینجا مبحث منطق فازی به میان می‌آید. تصور کنید که از شما پرسیده‌شود آب سرد است یا گرم و نتوانید ازهیچ کلمه‌ی دیگری برای توصیف دمای آب استفاده کنید. واضح است که این محدودیت، کیفیت و دقت پاسخ شما را پایین می‌آورد در واقع، شاید این محدودیت در چنین موضوعی از اهمیت بالایی برخوردار نباشد اما مسئله این است که در بسیاری از موضوعات زندگی این محدودیت قابل چشم‌پوشی نیست. برای مثال، حسگرهای خودکار کنترل فاصله با ماشین جلویی در خودروهای امروزی، استفاده گسترده‌ای ازمنطق فازی دارند. درنتیجه منطق فازی، در شرایطی که به دلیل محدودیت، امکان تشخیص درست یا نادرست بودن موضوعی را نداریم با انعطاف‌پذیری در استدلال هایش، شرایط را برای ما آسان تر کرده و نتیجه را پیش‌بینی می‌کند.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/rln_kZbYaWc‌ 2. شبکه عصبییکی از شاخه‌های هوش‌مصنوعی که الگوریتم‌های مربوط به آن از ساختار مغز ما انسان‌ها ایده‌برداری شده‌است، شبکه عصبی است که اطلاعات و داده‌ها را ازمحیط دریافت کرده و برای خواندن آن‌ها تلاش می‌کند و سپس خروجی را به ما می‌دهند. انجام این کارممکن است ماه‌ها یا حتی سال‌ها طول بکشد و مثال‌هایی از آن برنامه‌هایی هستند که سن فرد را براساس صورت وی تشخیص می‌دهند که این فرایند شامل جداسازی چهره فرد ازمحیط و استفاده از الگوها و الگوریتم‌ها برای تشخیص سن فرد است. این شاخه هنوز قدم‌های اول مسیر طولانی خود را طی می‌کند و شرکت‌هایی همچون گوگل و آمازون، به فعالیت دراین حوزه برای تشخیص مدل‌های مختلف مشغول‌اند.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/CMrHM8a3hqw3. پردازش زبان طبیعیحتما شما نیزدقت کرده‏اید که معمولا ارتباط با کسی‌ که با ما زبان مشترکی دارد آسان‌تر از ارتباط با افرادی است که زبان متفاوتی با یکدیگر داریم.یکی دیگر از شاخه‌های هوش‌مصنوعی، پردازش زبان طبیعی است که در این حوزه، مهندسان تلاش می‌کنند که ارتباط انسان و ماشین را با ساختن و طراحی ماشین‌هایی که زبان انسان را متوجه شوند در زمینه‌های گفتاری و نوشتاری بهبود ببخشند. برای مثال از نمونه‌های آن، میتوان به تماس ها در بستر اینترنت و دستیار هوشمند گوگل اشاره کرد که انسان نیستند و درواقع ماشین‌ها کارهای این‌چنینی را انجام می‌دهند و این‌کار همان پردازش وفهمیدن حرفای ما درست بر مبنای پردازش زبان طبیعی است. ما در زندگی روزانه، از این قابلیت با‌رها و بارها استفاده می‌کنیم از تلفظ کلمات زبان‌های دیگر در گوگل گرفته تا حتی تشخیص زیرپا گذاشتن قانون کپی رایت.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/CMrHM8a3hqw4. سیستم های خبره این شاخه از هوش‌مصنوعی مبتنی بر تقلید از هوش انسان است و به حل مسائل دشوار می‌پردازد، اولین ماشین پیشرفته در سال 1970 ساخته شد و توانست یک مسئله را با دانش و اطلاعات پیشین خود حل کند و اساس کار این ماشین ها به جای کدنویسی این ماشین‌های خبره در پزشکی، بانکداری و تجزیه و تحلیل کاربرد دارند.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/1lr2oIXtQlA5. ربات‌هابرای دیدن کلیپ کامل روی همین متن کلیک کنیداین شاخه، شناخته‌شده‌ترین شاخه هوش‌مصنوعی در دنیاست، از ربات‌ها در جاهای مختلفی استفاده می‌شود، از بیمارستان ها گرفته تا کارخانه‌جات مختلف. ربات ها توسط انسان ها به کارگرفته می‌شوند تا کارهای تکراری و روزمره انسان را انجام دهند و باری را از روی دوش نیروی انسانی بردارند. به نظر می‌رسد با پیشرفت علم و فناوری، روزی فراخواهد رسید که دیگر در کارخانه ها، بیمارستان‌ها و سایر مکان‌ها از نیروی انسانی استفاده نشود که این موضوع به دلیل محدودیت‌های نیروی کار از جمله خستگی و فرسودگی و... موضوع دور از انتظاری نیست. واقعیت نیزهمین است که ربات‌ها نه خسته می‌شوند و نه اشتباه و خطا دارند و دلایلی از این نوع برای قانع کردن رئیسان، برای استفاده ازاین تحول کافی است.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/SZRAGpo3wy06. یادگیری ماشینعنوان این شاخه ازهوش مصنوعی ممکن است کمی گیج کننده و سوال برانگیز باشد و درذهن خود این سوال را مرور کنید که آیا ماشین‌هایی که بتوانند آموزش ببیند و فکرکنند در دنیایی غیراز دنیای فیلم های تخیلی وجود دارند؟پاسخ این سوال، هم بله و هم خیر است. بشر هنوز موفق به ساخت ماشین‌ها و ربات‌هایی که بتوانند همانند او فکر کنند نشده‌است و هوش خدادایی ما هنوز جایگزین و جانشینی در جهان پیدا نکرده‌است اما بشر توانسته‌است ماشین‌ها را تحت تعلیم خود قراردهند، که در ادامه به توضیح بیشتر آن خواهم پرداخت.در عصر کنونی که حجم دیتاها و اطلاعات موجود، ثانیه به ثانیه در حال افزایش است اگر قرار باشد بررسی هر یک از این داده هارا انسان ها انجام دهند شاید بررسی آن ها به هزاران هزار انسان نیاز داشته باشد و صرفا نوشتن برنامه‌هایی برای یک نمونه خاص که قابل تعمیم به موارد مشابه نباشند از کارایی ماشین ها خواهد‌کاست، در این حوزه هوش مصنوعی انسان ها به ماشین ها آموزش می‌دهند تا از یک برنامه خاص نه تنها برای یک نمونه خاص، بلکه برای طیف وسیعی از سوالات و مشکلات مشابه استفاده‌کنند و یا به عبارت دیگر به پیش‌بینی بپردازد.در سال‌های اخیر تکنولوژی ماشین های بدون سرنشین،از این شاخه از هوش‌مصنوعی جان گرفته است.برای دانستن اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید.https://youtu.be/f_uwKZIAeM0به‌نظر می‌رسد هریک از این شاخه ها هنوز در ابتدای راه هستند و خبرهای شگفت‌انگیز و باورنکردنی ای را در سال های آتی به گوش ما خواهند‌رساند. خبرهایی از زندگی در دنیای متاورس و... شما دوست‌دارید چه خبری را بشنوید؟منابعhttps://www.analyticssteps.c https://www.softwaretestinghelp.com/what-is-artificial-intelligence/amp/om/blogs/6-major-branches-artificial-intelligence-aihttps://www.javatpoint.com/expert-systems-in-artificial-intelligencehttps://amerandish.com/%D8%B4%D8%A7%D8%AE%D9%87-%D9%87%D8%A7%DB%8C-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C/</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Thu, 02 Dec 2021 00:26:00 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Matplotlib (قسمت سوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-matplotlib-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-cdikmponmkkm</link>
                <description> شخصی سازی در نمودار دایره­ای:برای زیباتر شدن نمودار، ما از سه کیبورد آرگیومنت کاربردی استفاده می کنیم. کلمه  shodow که به معنی سایه هست، برای نمودار سایه میسازد. پس شدو را معرفی و مقدار آن را True میگذاریمplt.pie(slices,
  labels = Genres,
  colors = [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;, &#039;pink&#039;],
  shadow = True)برای جدا کردن قسمتی از نمودار و معمولاً برای فوکوس کردن و بررسی بخش ویژه ای از نمودار از دستور explode استفاده میشود. به این ترتیب که explode را معرفی و به صورت آرایه ای، ژانری را که میخواهیم از بقیه جدا شده باشد را با عددی بزرگتر از صفر و بخش هایی که میخواهیم بدون تغییر باشند را با عدد صفر مقداردهی میکنیم. مثلاً میخواهیم بخش درام را جدا کنیم. از آنجا که اولین نمودار در قسمت slices نمودار درام استپس اولین نمودار که مقدار 0.3 برای آن میگذاریم. کد زیر بیانگر همین مسئله است:plt.pie(slices,
  labels= Genres,
  colors= [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;, &#039;pink&#039;],
  explode= [0.3, 0, 0, 0],
  shadow= True)تنظیم استایل با استفاده از Cycler:در این مفهوم اولین سوالی که به ذهن ما میرسد این است که cycler  چیست؟سایکلر ها آرایه هایی حلقوی هستند که یک pointer(اشاره گر) به خانه صفرم آن آرایه دارند که هر بار یکی از خانه های این آرایه را میخوانیم pointer به خانه بعدی آن اشاره میکند و در این حلقه به صورت پی در پی جلو میرود و پس از خواندن خانه آخر pointerدوباره به خانه صفرم اشاره میکند.کاربرد cycler در matplotlib :در matplotlib برای ظاهر سازی نمودار ها که شامل رنگ و استایل نمودار میشود دو cycler  پیش فرض وجود دارد که یکی از آنها برای رنگ پیش فرض است و یکی برای استایل نمودار به صورت پیش فرض میباشد.این گونه که مثلا اگر یک نمودار داشته باشیم رنگ آن قرمز و اگر دو نمودار داشته باشیم رنگ پیش فرض آنها طبق خانه اول و دوم cycler  رنگ ها قرمز و سبز هستند واگر سه نمودار داشته باشیم رنگ نمودار سوم آبی است و... . cycler استایل نمودارها، برای مثال برای نمودار خطی، فقط یک خط ساده و با ضخامت پیشفرض است.حال ما میتوانیم با تعریف دو cycler  دلخواه برای رنگ و استایل نمودار ها این cycler  ها پیش فرض را برای نمودار های خود تغییر دهیم.حال یک نمودار تعریف میکنیم تا بتوانیم با تعریف دو cycler  رنگ و استایل برای آن تغییر را مشاهده کنیم.سپس بعد از تعریف  cycler  ها cyclerدلخواه خود را به تابع matplotlib.pyplot.rc()میدهیم تا به صورت پیش فرض قرار گیرد.این مثال دو API مختلف را نشان می دهد:1. تنظیم پارامتر rc که چرخه ویژگی پیش فرض را مشخص می کند. این روی تمام محورهای بعدی تأثیر می گذارد (اما نه محورهایی که قبلاً ایجاد شده اند).2.تنظیم چرخه ویژگی برای یک جفت محورابتدا کتابخانه های مورد نیاز را وارد و داده­های خود را تهیه میکنیم:from cycler import cycler
 import numpy as np
 import matplotlib.pyplot as plt
 
    x = np.linspace(0, 2 * np.pi, 50)
    offsets = np.linspace(0, 2 * np.pi, 4, endpoint=False)
    yy = np.transpose([np.sin(x + phi) for phi in offsets])بنابراین yy[:,] منحنی سینوس آفست i-ام را به شما می دهد. بیایید prop_cycle پیش فرض را با استفاده از matplotlib.pyplot.rc()تنظیم کنیم. با اضافه کردن دو سایکلر با هم، یک سایکلر رنگ و یک سایکلر استایل خط را با هم ترکیب می‌کنیم.default_cycler = (cycler(color=[&#039;r&#039;, &#039;g&#039;, &#039;b&#039;, &#039;y&#039;]) +
  cycler(linestyle=[&#039;-&#039;, &#039;--&#039;, &#039;:&#039;, &#039;-.&#039;]))
plt.rc(&#039;lines&#039;, linewidth=4)
plt.rc(&#039;axes&#039;, prop_cycle=default_cycler)custom_cycler = (cycler(color=[&#039;c&#039;,
                 &#039;m&#039;, &#039;y&#039;, &#039;k&#039;]) +
                 cycler(lw=[1, 2, 3, 
                 4]))

fig, (ax0, ax1) = plt.subplots(nrows=2)

ax0.plot(yy)

ax0.set_title(&#039;Set default color cycle to rgby&#039;)

ax1.set_prop_cycle(custom_cycler)

ax1.plot(yy)

ax1.set_title(&#039;Set axes color cycle to cmyk&#039;)

fig.subplots_adjust(hspace=0.3)
plt.show()حالا یک شکل با دو نمودار (محور جداگانه)، یکی روی دیگری ایجاد می کنیم. در نمودار اول، با cycler پیش فرض رسم می کنیم. در نمودار دوم، prop_cycle را با استفاده از mpl.axes.Axes.set_prop_cycle() تنظیم می کنیم، که فقط prop_cycle را برای این نمونه matplotlib.axes.Axes تنظیم می کند. ما از چرخه‌کننده دوم استفاده خواهیم کرد که چرخه‌کننده رنگ و چرخش‌کننده پهنای خط را ترکیب می‌کند.Legend:همان راهنمای نمودار ها هستند و نمودار ها را توضیح مدهند و توصیف میکنند و اطلاعاتی در مورد نمودار ها به ما میدهند. که توسط تابع legend() در دسترس ما قرار میگیرند.Legend entry:برای کار با legend  ها ما نیاز داریم چند تعریف مرتبط با این legend ها را بدانیم:Legend key:به نشانگر طرح دار یا رنگ استفاده شده در سمت چپ label ،key میگوییم.Legend label:متنی یا برچسبی که نمودار مربوط به خود را توصیف میکند.Legend handle:شیئی  که برای ایجاد یک legend entry  استفاده میشود که با استفاده از آنها label ها را کنترل میکنیم.th = np.linspace(0, 2*np.pi, 128)

th = np.linspace(0, 2*np.pi, 128) 

plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)plt.set_title(&#039;No Legend&#039;, color=&#039;C0&#039;)
 یک قطعه کد بدون legend:حال اینبار با استفاده از تابع legend  میخواهیم برای این نمودار legend بگذاریم.تابع legend() در matplotlib به 3 شکل میتوان آن را صدا زد.1) تابع legend() بدون آرگمان ورودی2) تابع legend(label) همراه با یک آرگمان ورودی ،که این آرگمان ورودی باید label  باشد.3) تابع legend(handle , label) همراه با دو آرگمان ورودی، که ورودی اول باید handle باشد و ورودی دوم تابع باید label باشد.برای ادامه کار این سه شکل استفاده از تابع legend() را پیاده سازی میکنیم.1. تابع legend() بدون آرگمان ورودی :در این شکل صدا زدن تابع ما در قطعه کد قبل باید label  هر نمودار را در تابع plot() مشخص کنیم.و سپس وقتی تابع legend() را صدا میزنیم وlegend  ها در کوشه سمت چپ پایین نمودار نمایش داده میشوند.th = np.linspace(0, 2*np.pi, 128) 

plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)plt.set_title(&#039;With Legend&#039;, color=&#039;C0&#039;)plt.legend()2. پیش از صدا زدن legend نیازی به نام گذاری محور ها نیست. میتوان آنها را در متد لجند در قالب یک آرایه، به ترتیب، تعریف کرد.تابع legend() به ترتیب صدا زدن تابع plot() این label ها را به نمودار های آنها نسبت میدهد و خروجی مانند قبل میشود.th = np.linspace(0, 2*np.pi, 128) 

plt.plot(th, np.cos(th), &#039;C1&#039;)
plt.plot(th, np.sin(th), &#039;C2&#039;)plt.set_title(&#039;With Legend&#039;, color=&#039;C0&#039;)plt.legend([&#039;C1&#039;, &#039;C2&#039;])3)در صدا زدن تابع legend() همراه با دو ورودی ما از handle ها برای ایجاد تناظر بین label ها و نمودار ها کمک میگیریم.به صورتی که برای هر نمودار یک handle  تعریف میکنیم و بعد داخل تابع legend() به ترتیب نام بردن handle ها labelهای مربوط به آنها را می آوریم .به line1 و line2 ،handle گوییم.در این جا تابعlegend() بین line1 و squares و همچنین بین line2و cubes تناظر برقرار میکند. خروجی تابع مثل قبل میشود.تعیین مکان legend:برای تعیین مکان قرارگیری legend ها از کلمه کلیدی loc استفاده میکنیم.میتوانیم داخل تابع legend به صورت یک ورودی با استفاده از کلمه کلیدی loc  مکان قرارگیری را مشخص کنیم.مکان پیش فرض تابع legend گوشه پایین سمت راست است.مثلا اگر بخواهیم مکان قرار گیری آن را چپ بالا قرار دهیم به شکل زیر عمل میکنیم.th = np.linspace(0, 2*np.pi, 128)

line1, = plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

line2, = plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)

plt.title(&#039;With Legend&#039;, color=&#039;C0&#039;)

plt.legend([line1, line2], [&#039;C1&#039;, &#039;C2&#039;], loc=&#039;upper left&#039;)اعداد و کلمات رزرو شده برای تعیین موقعیت legend ها به صورت زیر است:با استفاده از کلمه کلیدی bbox_to_anchor میتوان با یک دقت خوب مکان قرارگیری legend ها را تعیین کرد.th = np.linspace(0, 2*np.pi, 128)

line1, = plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

line2, = plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)

plt.title(&#039;With Legend&#039;, color=&#039;C0&#039;)

plt.legend([line1, line2], [&#039;C1&#039;, &#039;C2&#039;])

th = np.linspace(0, 2*np.pi, 128)

line1, = plt.plot(th, np.cos(th), &#039;C1&#039;, label=&#039;C1&#039;)

line2, = plt.plot(th, np.sin(th), &#039;C2&#039;, label=&#039;C2&#039;)

plt.title(&#039;With Legend&#039;, color=&#039;C0&#039;)

plt.legend([line1, line2], [&#039;C1&#039;, &#039;C2&#039;], loc=&#039;upper left&#039;)با استفاده از subplot_mosaic میتوان دو لجند را جدا از هم قرار داد.fig, ax_dict = plt.subplot_mosaic([[&#039;top&#039;, &#039;top&#039;], [&#039;bottom&#039;, &#039;BLANK&#039;]],

                                  empty_sentinel=&amp;quotBLANK&amp;quot)

ax_dict[&#039;top&#039;].plot([1, 2, 3], label=&amp;quottest1&amp;quot)

ax_dict[&#039;top&#039;].plot([3, 2, 1], label=&amp;quottest2&amp;quot)

ax_dict[&#039;top&#039;].legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=&#039;lower left&#039;,

                      ncol=2, mode=&amp;quotexpand&amp;quot, borderaxespad=0.)

ax_dict[&#039;bottom&#039;].plot([1, 2, 3], label=&amp;quottest1&amp;quot)

ax_dict[&#039;bottom&#039;].plot([3, 2, 1], label=&amp;quottest2&amp;quot)

ax_dict[&#039;bottom&#039;].legend(bbox_to_anchor=(1.05, 1),

                         loc=&#039;upper left&#039;, borderaxespad=0.)

plt.show()چند legend  برای یک axes مشابه:گاهی ما برای یک axes میخواهیم دو بار یا بیشتر تابع legend() را صدا بزنیم چون برای مثال برای هر entry میخواهیم legendجداگانه داشته باشیم و و به طور جداگانه تابع legend() را صدا بزنیم.برای این کار باید آنها را جداگانه به صورت دستی به axes  اضافه کنیم.fig, ax = plt.subplots()

line1, = ax.plot([1, 2, 3], label=&amp;quotLine 1&amp;quot, linestyle=&#039;--&#039;)

line2, = ax.plot([3, 2, 1], label=&amp;quotLine 2&amp;quot, linewidth=4)



first_legend = ax.legend(handles=[line1], loc=&#039;upper right&#039;)

ax.add_artist(first_legend)

ax.legend(handles=[line2], loc=&#039;lower right&#039;)



plt.show()در اینجا ما ابتدا یک legend  برای line1 تعریف کرده سپس آن را به صورت دستی به axes اضافه کردیم.و سپس یک legendجداگانه برای line2 میسازیم.اگر ما به صورت دستی legend  قدیمی تر(خط اول ) را به axes اضافه نکرده بودیم legend  قدیمی تر حذف میشد و legend  جدید تر اعمال میشد.در پایان برای کسب دانش بیشتر در زمینه ی matplotlib تمرین، دیدن فیلم های آموزشی و خواندن مطالب سایت matplotlib.org میتونه بسیار تاثیرگذار باشه، ما سعی کردیم که چکیده ­ مطالب رو به بهترین شکلی که در توانمون بود براتون جمع آوری کنیم؛ باشد که پله­ های برای شروع یادگیری هوش مصنوعی باشه.از طرف انجمن هوش مصنوعی بهتون خسته نباشید میگم و تو دوره های بعدی منتظرتون هستیم.موفق باشین ?انجمن هوش مصنوعی دانشگاه اصفهانابولفضل شیشه­ گرامیرمحسن براهیمیعلیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Wed, 01 Dec 2021 23:29:26 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Matplotlib (قسمت دوم)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-matplotlib-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-ebiyqtizkdnf</link>
                <description>Pyplot اما دقیق تر :رسم نمودار دو بعدی:اول از همه باید متغیرهایی برای محور x و y تعریف کنیم .برای نمایش نمودار از دستور show به صورت روبرو استفاده میکنیم.import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4] , [2, 4, 6, 8])
plt.show()قرار دادن نام برای نمودار، خطوط و محورها:برای نامگذاری تابع از دستور title و برای نامگذاری محور های ایکس و وای به ترتیب از دستور های xlabel و ylabel استفاده میکنیم:plt.xlabel(&#039;X&#039;)
plt.ylabel(&#039;Y&#039;)
plt.title(&#039;Title&#039;)در نمودار های چندخطی برای نامگذاری خطوط از دستور زیر استفاده میکنیم:x = [1, 2, 3]

y = [4, 5, 6]

x2 = [2, 3, 4]

y2 = [4 , 5, 6]

plt.plot(x, y, label = &#039;First line&#039;)

plt.plot(x2, y2, label = &#039;Second line&#039;)

plt.legend()همانطور که میبینید x ,y و x2,y2 را به صورت آرایه های سه تایی از اعداد معرفی کرده ایم. سپس دو نمودار با استفاده از پلات ساخته ایم. دستور لیبل برای نامگذاری بخش های مختلف نمودار استفاده میشود که در این جا اولین نمودار را با لیبل First line و دومین نمودار را با لیبل Second line معرفی کرده­ایم. دستور legend نیز برای نمایش نامگذاری نمودار هاست و اگر نوشته نشود، نامگذاری های لیبل ها هم نمایش داده نمیشوند.رسم نمودار میله ای یا بارچارت:نمودار های میله ای معمولاً برای مقایسه استفاده میشوند و گروه هایی از داده ها را با هم مقایسه می کنیم ولی برای بررسی توزیع داده ها از نمودار های هیستوگرام استفاده میکنیم که معمولاً به شکل محدوده ای از اعداد هستند.x = [1, 2, 3, 4]

y = [6, 9, 2, 12]

plt.bar(x, y, label = &#039;First bar chart&#039;)رسم نمودار هیستوگرام:در مثال ما میخواهیم ببینیم رنج قد گروهی از مردم در چه حدودی است. برای همین در آرایه ای به نام قد، طول قد افراد را ذخیره کرده ایم.height = [152, 183, 205, 175, 178, 167, 192, 169, 173, 181 ,145]

bins = [140, 150, 160, 170, 180, 190, 200, 210]

plt.hist(height, bins, histtype = &#039;bar&#039;, rwidth = 0.7)در قسمت بعد باید گروه بندی محور ایکس ها را انجام دهیم. در این گروه بندی ما دسته هایی با طول 10 سانتی متر از 140 سانتی متر تا 210 سانتی متر ساخته ایم. در histtype باید مدل نمودار هیستوگرام را مشخص کنیم که ما بصورت میله ای مقداردهی کرده ایم. در قسمت آخر نیز باید عرض نمودار را مقداردهی کنیم که برای خوانایی بیشتر پیشنهاد میشود از اعداد کمتر از 1 استفاده کنید.رسم نمودار نقطه ای:x = [2, 5, 4.5, 3, 5.25]

y = [1 , 4, 3, 2.5, 7.75]

plt.scatter (x, y, label = &#039;points&#039;)

plt.legend()نمودار های نقطه ای معمولاٌ ارتباط بین دو متغیر ایکس و وای و یا توزیع یک داده را نشان میدهند.با تغییر استرینگ label میتوان نام مشخص شده در راهنمای نمودار را عوض کرد.رسم نمودار های توده ای:نمودار های توده ای برای بررسی پارامتر هایی که حداقل یک متغیر مشترک دارند استفاده میشنود. مثلاٌ میخواهیم ببینیم که در پنج ماه اول سال ما چه هزینه هایی برای خوردن،کار و هزینه های روزمره کرده ایم.در ابتدا ما آرایه هایی 5 تایی از ماه، خوردن، کار و هزینه های روزمره میسازیم که به ترتیب در آن ها شماره ماه ها از یک تا پنج، هزینه های خوردن در پنج ماه اول سال، هزینه های کاری در پنج ماه اول سال و هزینه های روزمره در پنج ماه اول سال را قرار میدهیم. برای مقداردهی لجند نمودار برای خوردن رنگ قرمز، برای کار رنگ آبی و برای هزینه های روزمره رنگ سبز را انتخاب میکنیم.دقت کنید که ترتیب رنگ ها در بخش بعدی نیز باید به همین صورت باشد وگرنه بین لجند و نمودار رسم شده شاهد تناقض هستیم!در نهایت برای ساخت نمودار توده ای از دستور stackplot استفاده میکنیم، به این صورت که اولین آرایه که همان ماه است به صورت پیشفرض برای محور ایکس و آرایه های بعدی نمودار ما را تشکیل میدهند. از آن جا که رنگ پیشفرض همه نمودار ها با هم یکی است، باید آن ها را رنگ دهی کنیم. برای تغییر رنگ نمودار ها از دستور colors استفاده میکنیم و رنگ ها را به ترتیب وارد میکنیم.این نوع نمودار ها در مسائلی مانند BMI (شاخص توده­ی بدنی) بسیار کاربرد دارد.months = [1, 2 ,3 ,4 ,5]

eating = [200, 175, 350, 300, 420]

work = [500, 450, 700, 680, 380]

daily_payments = [120, 200, 85, 190, 310]

plt.plot([], [], color = &#039;red&#039;, label = &#039;eating&#039;)

plt.plot([], [], color = &#039;blue&#039;, label = &#039;work&#039;)

plt.plot([], [], color = &#039;green&#039;, label = &#039;daily_payments&#039;)

plt.stackplot(months, eating, work, daily_payments, colors = [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;])

plt.legend()رسم نمودار های دایره ای:نمودار های دایره ای معمولاً برای نمایش اندازه نسبی بسیاری از چیزها استفاده میشود مانند:نوع ماشینی که مردم سوار می‌شوندتعداد مشتری‌های یک مغازه در روز‌های مختلفاین که کدام نوع موسیقی طرفدار بیشتری دارد.در مثالی که ما زده ایم، ژانر فیلم های مورد علاقه جوانان بین 25 تا 30 سال را بررسی کرده ایم. در ابتدا آرایه ای برای ژانر های انتخابی ساخته ایم و چهار ژانر مختلف درام، اکشن، کمدی و رومانتیک را در آن مقداردهی کرده ایم. در قسمت بعدی آرایه ای برای ثبت نظرسنجی ساخته ایم و به ترتیب 16، 21، 43 و 20 نفر به فیلم های درام، اکشن، کمدی و رومانتیک رأی داده اند.برای ساخت نمودار دایره ای از کلیدواژه pieاستفاده میکنیم. این نام به دلیل شباهت نمودار دایره ای به شیرینی پای انتخاب شده است. طبق معمول باید ایکس و وای تعریف کنیم که برای ا یکس ها نتایج نظرسنجی و برای وای ها ژانر ها را میگذاریم. از آنجا که نمودار های دایره ای لااقل دو بخش متفاوت دارد، باید رنگ نمودار ها را تغییر دهیم و برای این کار از کلیدواژه colorsاستفاده میکنیم و به ترتیبی که ژانر ها را معرفی کردیم، برای آن ها رنگ میگذاریم.Genres = [&#039;Drama&#039;, &#039;Action&#039;, &#039;Comedy&#039;, &#039;Romance&#039;]  
slices = [16, 21, 43, 20]  
plt.pie(slices, labels = Genres, colors = [&#039;red&#039;, &#039;blue&#039;, &#039;green&#039;, &#039;pink&#039;])  
plt.show()استایل و شخصی سازی اشکال (Figure Style):استایل کلی:در matplotlib میتوان از طریق متد style شکل کلی نمودار را تغییر داد به گونه ای که تم نمودار (پس زمینه، رنگ خطوط و...) عوض میشوند.در صفحه ی بعد تمام استایل های موجود در لیست matplotlib.pyplot.style.available نمایش داده میشوداین استایل ها را میتوان توسط متد اصلی برنامه قرار داد:plt.style.available
[&#039;Solarize_Light2&#039;,
&#039;default&#039;
&#039;_classic_test_patch&#039;,
&#039;bmh&#039;,
&#039;classic&#039;,
&#039;dark_background&#039;,
&#039;fast&#039;,
&#039;fivethirtyeight&#039;,
&#039;ggplot&#039;,
&#039;grayscale&#039;,
&#039;seaborn&#039;
&#039;seaborn-bright&#039;,
&#039;seaborn-colorblind&#039;,
&#039;seaborn-dark&#039;,
&#039;seaborn-dark-palette&#039;,
&#039;seaborn-darkgrid&#039;,
&#039;seaborn-deep&#039;,
&#039;seaborn-muted&#039;,
&#039;seaborn-notebook&#039;,
&#039;seaborn-paper&#039;,
&#039;seaborn-pastel&#039;,
&#039;seaborn-poster&#039;,
&#039;seaborn-talk&#039;,
&#039;seaborn-ticks&#039;,
&#039;seaborn-white&#039;,
&#039;seaborn-whitegrid&#039;]plt.style.use(&#039;default&#039;)
plt.plot([1, 4, 5, 7])plt.style.use(&#039;seaborn&#039;)
plt.plot([1, 4, 5, 7])با تعیین استایل، تمامی نمودار هایی که در برنامه هستند، به استایل مورد نظر تغییر شکل میدهند.برای تغییر استایل فقط برای یک نمودار میتوان از کلمه کلیدی with استفاده نمود:x = np.sin(np.linspace(0, 2 * np.pi))
with plt.style.context(&#039;seaborn&#039;):
         plt.plot(x)
در این صورت، با متد contextمتحوای استایل را به شکل نسبت میدهیم.رنگ محورها:در پایپلات میتوان رنگ محور ها را حین ایجاد آنها تغییر داد: استفاده از کد هگز رنگ مورد نظر حرف اول برخی رنگ های اصلی نام مخصوص X11/CSS4 رنگبرای اطلاعات بیشتر میتوانید به جدول راهنما مراجعه کنید.نوع محور ها:نمودار lineدارای استایل های مختلفی است که میتوانید با آرگیومنت linestyle=’’ آنها را تعیین کنید:در این نمودار همچنین میتوان از آرگیومنت marker=’ ‘ برای علامت گذاری نقاط تعیین شده استفاده کرد:این علامت گذاری ها برای نمودار scatter نیز قابل استفاده است. نمونه ی همه­ی این استایل ها در ادامه، نشانه ی انعطاف پذیری بالای این کتابخانه است.در مثالی که قبلا در مورد نمودار نقطه¬ای زده بودیم دیدیم که استایل پیشفرض از نقطه¬های آبی برای نمایش نمودار استفاده کرده است. حال نوع و رنگ نقاط را میخواهیم به دلخواه تغییر دهیم:x = [2, 5, 4.5, 3, 5.25]

y = [1 , 4, 3, 2.5, 7.75]

plt.scatter (x, y, label = &#039;points&#039;, color = &#039;red&#039;, s = 15, marker = &#039;*&#039;)

plt.legend()فعلیقبلینکته: برای استایل های نمودار خطی میتوان از پنج مورد کوتاه شده استفاده نمود و نیازی به نام کامل آنها نیست. (&#x27;-&#x27;, &#x27;--&#x27;, &#x27;:&#x27;, &#x27;-.&#x27;, &#x27;.&#x27;)نکته: در نمودار های خطی میتوان رنگ، نوع خط و نوع علامت (marker) را در یک رشته خلاصه کرد.x = np.sin(np.linspace(0, 2 * np.pi))

    with plt.style.context(&#039;dark_background&#039;):

    plt.plot(x, color=&#039;r&#039;, linestyle=&#039;-&#039;, marker=&#039;o&#039;)x = np.sin(np.linspace(0, 2 * np.pi))

    with plt.style.context(&#039;dark_background&#039;):

    plt.plot(x)مثال زیر نشاندهنده ی روش خلاصه کردن مشخصات خط است به نحوی که ابتدا حرف اول رنگ، سپس نوع خط و در آخر علامت آن می آید.x = np.sin(np.linspace(0, 2 * np.pi))

with plt.style.context(&#039;dark_background&#039;):

    plt.plot(x, &#039;r-o&#039;)مثال چرخه ی تولید یک نمودار:?برای نمودارهایی که توضیحات محور های افقی یا عمودی آنها بزرگ است، احتمال دارد که نوشته ها تو در تو و نا خوانا باشند. به مثال زیر توجه کنید:fig, ax = plt.subplots()

ax.barh(group_names, group_data)مپ رو به رو را در دو متغیر تعریف شده ریخته و سپس نمودار را رسم میکنیم:import numpy as np
import matplotlib.pyplot as plt
data = {&#039;Barton LLC&#039;: 109438.50,

        &#039;Frami, Hills and Schmidt&#039;: 103569.59,

        &#039;Fritsch, Russel and Anderson&#039;: 112214.71,

        &#039;Jerde-Hilpert&#039;: 112591.43,

        &#039;Keeling LLC&#039;: 100934.30,

        &#039;Koepp Ltd&#039;: 103660.54,

        &#039;Kulas Inc&#039;: 137351.96,

        &#039;Trantow-Barrows&#039;: 123381.38,

        &#039;White-Trantow&#039;: 135841.99,

        &#039;Will LLC&#039;: 104437.60}

group_data = list(data.values())

group_names = list(data.keys())

group_mean = np.mean(group_data);همانگونه که مشاهده میشود، اسامی شرکت ها کامل نیوفتاده اند و اعداد محور افقی با فاصله ی کمی از هم قرار دارند. به همین خاطر میخواهیم اعداد محور افقی را به صورت مورب قرار دهیم تا یکی از مشکلات برطرف شود.fig, ax = plt.subplots()

ax.barh(group_names, group_data)

labels = ax.get_xticklabels()

plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)از طریق متد get_xticklabels قصد داریم تا تمامی رفرنس اعداد محور افقی را در متغیر labels قرار دهیم. در خط بعدی نیز، مشخصات مربوطه را وارد و اعداد را چهل و پنج درجه میچرخانیم.در مرحله ی بعدی، از طول اضافی نمودار میکاهیم تا نوشته ها کامل نمایش داده شوند.به همین خاطر از rcParams استفاده میکنیم. دیکشنری rcParams مرجعی کامل، برای کلاس pyplot است که تمام ساختار نمودار ها در آن ذخیرهplt.rcParams.update({&#039;figure.autolayout&#039;: True})
 
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)حال برای زیباسازی بیشتر و ایجاد جزئیات، به برچسب عمودی و افقی نیاز است:fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)
ax.set(xlim=[-10000, 140000], xlabel=&#039;Total Revenue&#039;, ylabel=&#039;Company&#039;,
  title=&#039;Company Revenue&#039;)حال سایز نمودار را تغییر میدهیم:fig, ax = plt.subplots(figsize=(8, 4))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)
ax.set(xlim=[-10000, 140000], xlabel=&#039;Total Revenue&#039;, ylabel=&#039;Company&#039;,
  title=&#039;Company Revenue&#039;)اکنون برای اینکه نمودار برای نمایش عمومی مناسب باشد، باید از تعداد صفرها کاهید. به همین منظور متدی باید تعبیه کرد که هزار و میلیون را به اعداد کوتاه تر تبدیل کند.پس از اضافه کردن این متد، شکل آماده­ی استفاده است.با مقایسه­ی این نمودار اولیه با نتیجه­ی نهایی، تفاوت داده­ی پردازش شده با شکل ساده را میتوان مشاهده کرد.def currency(num, pos):
  if num &gt;= 1e6:
  s = &#039;${:1.1f}M&#039;.format(num*1e-6)
  else:
  s = &#039;${:1.0f}K&#039;.format(num*1e-3)
  return s
fig, ax = plt.subplots(figsize=(6, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment=&#039;right&#039;)
 
ax.set(xlim=[-10000, 140000], xlabel=&#039;Total Revenue&#039;, ylabel=&#039;Company&#039;,
  title=&#039;Company Revenue&#039;)
ax.xaxis.set_major_formatter(currency)ادامه مطلب را در قسمت بعدی بخوانید...انجمن هوش مصنوعی دانشگاه اصفهانابولفضل شیشه­ گرامیرمحسن براهیمیعلیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Thu, 25 Nov 2021 21:43:01 +0330</pubDate>
            </item>
                    <item>
                <title>تولد یک تحول</title>
                <link>https://virgool.io/pubUIAI/%D8%AA%D9%88%D9%84%D8%AF-%DB%8C%DA%A9-%D8%AA%D8%AD%D9%88%D9%84-xg4trgaq1mg6</link>
                <description>هوش مصنوعی، عبارتی است که این روزها در خبرهای مربوط به تکنولوژی، بیش‌تراز هر موضوع دیگری به چشم می‌خورد. اولین رویارویی ما با هوش‌ مصنوعی از آشنای با ربات ها در فیلم‌ها، شروع شده است، ربات هایی که توانایی‌هایی شبیه به انسان‌ها داشتند،مانند آن‌ها صحبت می‌کردند و فکر می‌کردند. انسان ها سالیان درازی به دنبال خلق موجوداتی شبیه به خود یا حتی قوی‌تر و باهوش‌تر از خود بوده‌اند. امروزه، هوش مصنوعی در زندگی ما نفوذ کرده‌است و در بسیاری از مواقع یکی از آن‌ها را با خود حمل می‌کنیم.اما سوال اینجاست که آیا این تکنولوژی به یک‌باره در زندگی ما متولد شد و یک محتوای جدید یا یک ایده‌ی نو است یا گذشته‌ای پرفرازونشیب داشته‌است؟درسال‌های(1960-1950)، ریاضی‌دانان، دانشمندان و فیلسوفان برجسته‌ای زندگی می‌کردند که علاقه‌ی خاص و ویژه‌ای به تئوری هوشی به غیراز‌‌ هوش انسان‌ها داشتند و این فکر را در سر خود می‌پروراندند. یکی از مشهورترین این ریاضی‌دانان ، آلن تورینگ بود که از او به عنوان پدرهوش مصنوعی جهان یاد می‌شود. آلن تورینگ بریتانیایی، معتقد بود که اگر انسان‌ها این توانایی و مهارت را دارند که فکر کنند و به طور منطقی و براساس داده ها و اطلاعات موجود، تصمیم‌گیری کنند، پس ماشین‌ها نیزامکان این ‌کار را دارند بنابراین، مقاله ای درباب محاسبات ماشینی وهوش نوشت که در آن به بررسی ساخت ماشین‌ها و هوش آن‌ها پرداخت.همه چیز از یک کنفرانس آغاز شد. درآن کنفرانس بود که به هوش مصنوعی جان داده شد و اولین رویارویی عموم مردم با هوش مصنوعی صورت گرفت و این نقطه، درست نقطه شروع بود به طوری که بسیاری نسبت به آن کنجکاو شدند، بسیاری به سرمایه گذاری در این حوزه روی آوردند و از تحقیقات و بررسی‌ها حمایت کردند و دانشمندان نیز شروع به تحقیقات خود در دانشگاه‌‌‌ها و... کردند. همه چیز خوب به‌نظرمی‌رسید که اولین درب بسته در مقابل هوش مصنوعی قرار گرفت و شرایط آن‌طور که انتظار می‌رفت پیش‌نرفت.یکی از دلایل افول هوش مصنوعی در این بازه زمانی، پرهزینه و زمان‌بر بودن آن بود به صورتی که درآن دوره، داشتن کامپیوتر‌های شخصی رایج نبود و تنها‌‌ سازمان‌ها و دانشگاه‌های بزرگ توان خرید و استفاده از این دستگاه‌ها را داشتند. مشکل دیگر این بود که کامپیوترهای آن زمان ، توانایی ذخیره سازی اطلاعات و داده ها را نداشتند و از سرعت پایینی برخوردار بودند. اینجا بود که گمان کردند این‌کار شدنی نیست.درسال های(1987-1980)، سیستم‌های پیشرفته با قابلیت پردازش بالا و ذخیره سازی اطلاعات، جان دوباره‌ای به این تکنولوژی نوپا بخشید و دوباره توجه ها را به خود جلب کرد به‌گونه‌ای که باز هم عده ای به تحقیقات و سرمایه گذاری متمایل شدند. درحالی که به‌نظر می‌رسید مشکلات حل شده‌اند بازهم مشکلات تازه ای بر مسیر هوش مصنوعی سبز شدند. عواملی مانند پرهزینه و زمان‌بر بودن و هم‌چنین نیاز سیستم‌های کامپیوتری به داده‌ها و اطلاعات استاندارد.شاید فکر کنید‌‌‌ که این فرازها و نشیب‌ها همین جا تمام می‌شوند اما در واقع با وجود این‌که شرایط بر ناکارآمدی هوش مصنوعی دلالت می‌کرد اما بازهم ورق برگشت و تکنولوژی دیپ بلو توانست که کاسپاروف استاد بزرگ و شطرنج باز قهار را در یک بازی کامپیوتری شکست دهد.داستان اینجا تمام نمی‌شود و تولد و رشد این تحول قرن اخیر، هنوزهم پراز پستی‌ها و بلندی‌هاست. به‌نظر شما روزی می‌رسد که تمام تصورات محال ما را جامه عمل بپوشاند؟منابع:https://sitn.hms.harvard.edu/https://amerandish.com/انجمن هوش مصنوعی دانشگاه اصفهانفاطمه رضایی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Mon, 22 Nov 2021 22:12:43 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Matplotlib (قسمت اول)</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-matplotlib-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-jw4mwoelty8v</link>
                <description>کتابخانه Matplotlib یک کتابخانه جامع برای ایجاد تجسم های ثابت، متحرک و تعاملی در پایتون است. دلیل استفاده از این کتابخانه ایجاد محتوایی ساده تر درک بهتر توسعه دهنده یا کاربر از داده های موجود است. بدین­گونه جداول بزرگ و پیچیده را میتوان به راحتی به اشکال و نمودار های ساده تر تبدیل کرد و اطلاعات بیشتری را از آنها استخراج کرد.چرا matplotlib را انتخاب کنیم؟ساخت· اطلاعات تحلیل شده خود را در چند خط، توسعه و آماده ی انتشار کنید· به راحتی از اشکال تعاملی که قابل به روز شدن هستند استفاده کنیدشخصی سازی· کنترل کامل سبک های خط، ویژگی های فونت، ویژگی های محورها...· استخراج و جاسازی به تعدادی فرمت فایل و محیط های تعاملیگسترش· استفاده از افزونه های سازگار ارائه شده در اینترنت· یادگیری آسان و دسترسی به مطالب آموزشیبه طور کلی میتوان گفت که این کتابخانه به دلیل راحتی و همچنین دقت به جزئیات میتواند گزینه ی مناسبی برای نمایش داده های ساختاری باشد.امکان ایجاد مستقیم نمودار بوسیله ی دیگر کتابخانه ها مثل numpy و pandas که قبلا آموزش داده شده یکی از دلایل جذب توسعه دهندگان به این کتابخانه است که در ادامه نحوه ی ترکیب و استفاده از این کتابخانه ها را توضیح میدهیم.نصب کتابخانه:conda install matplotlibدر محیط conda شما میتوانید با نوشتن این خط دستور، matplotlib را دانلود و نصب نمایید:روش استفاده از این کتابخانه به دوشکل است:الف) استفاده از کلاس pyplotب) استفاده از روش شی گراییاستفاده از هر دو روش آزاد است اما در برخی شرایط نسبت به یکدیگر برتری دارند که بعدا توضیح میدهیم.در این آموزش، از numpy و pandas نیز استفاده شده، پس حتما آنها را از قبل ایمپورت کنید. برای استفاده از نمونه های رندوم از np.random.seed(42) استفاده کنید. دلیل آن هم این است که نمونه های رندوم مورد استفاده همیشه یکسان باشند تا در صورت برخورد به یک مشکل، باز هم بتوانید آنرا بازسازی کنید. این یک مرجع فرهنگ پاپ است! در رمان علمی-تخیلی محبوب داگلاس آدامز در سال 1979، «راهنمای هیچیکر برای کهکشان»، در پایان کتاب، ابرکامپیوتر Deep Thought نشان می‌دهد که پاسخ به سؤال بزرگ «زندگی، جهان و همه چیز» 42 است.از کجا شروع کنیم؟import matplotlib.pyplot     as pltابتدا این کلاس را از کتابخانه اضافه میکنیم وبه اختصار آنرا plt می­نامیم.برای کشیدن هر نمودار ابتدا باید با تعدادی از اصطلاحات آشنا شویم:1. (نقشه) Plot: شکل کلی نمودار رسم شده توسط کد را پلات میگویند. 2.(شکل) Figure: به یک یا مجموعه ای از جنس نمودار گفته میشود. 3. (محور) Ax: زیر مجموعه ی figureمیباشد. برای شروع باید داده­ای برای رسم در اختیار داشته باشیم. برای این امر کلاس هایی برای تولید دیتای رندوم تعبیه شده ولی برای راحتی یادگیری، از داده های کوچک و ساده شروع میکنیم. ابتدا به دو آرایه با طول یکسان نیاز است تا اضافه کنیم.x = np.array([1, 2, 3, 4, 5])y = np.array([1, 2, 7, 13, 2])بهتر است آرایه از جنس نامپای باشدخروجی کد دقیقا به این شکل است. با اضافه کردن «;» به انتهای خط میتوان کد بالای نمودار را نیز حذف کرد.همانگونه که می­بینید درصورتی که نوع و اطلاعات مربوط به ظاهر نمودار در کد ذکر نشود، سایز، نوع نمودار و سایر جزئیات به صورت پیشفرض تعیین می­شوند.انواع مختلف نمودار در ادامه توضیح داده می­شود.هماگونه که توضیح داده شد، برای اینکه بتوانیم به طور دقیق یک نمودار را رسم کنیم به دو کلمه­ ی کلیدی شکل (figure) و ناحیه (axes) نیاز داریم.fig, ax = plt.subplots()

ax.plot(x, y)بدین منظور با تعریف جدیدی به اسم طرح فرعی (subplot) آشنا می­شویم. با این کلمه میتوان جزئیات نمودار را تعیین نمود و توسط متد plot آنرا رسم کرد که خروجی مانند قبل است.به طور کلی شکل نهایی یک نمودار به شکل زیر است:مثال: fig عنوان مخصوص خود را دارد، همچنین زیر مجموعه­های آن هم عنوان جداگانه دارد ولی برچسب ها فقط مخصوص زیر مجموعه است که در ادامه به طور کلی در مورد این دو کلمه توضیح میدهیمجهت مطالعه بیشتر:Figure (شکل):شامل کل شکل است. این شکل تمام محورهای (ax) کوچکتر، تعدادی از آرتیست های ویژه مانند عنوان ها، راهنماهای شکل و غیره... و بوم را ردیابی می‌کند. (در مورد بوم زیاد نگران نباشید، بسیار مهم است زیرا این شی است که در واقع طراحی را انجام می دهد تا طرح شما را به دست بیاورد، اما به عنوان کاربر کم و بیش برای شما نامرئی است). یک شکل می‌تواند شامل هر تعداد محور باشد، اما معمولاً حداقل یک محور دارد.منظور از آرتیست، شی­ای است که می داند چگونه از یک رندر برای نقاشی روی بوم استفاده کند.Axes (محورها):این همان چیزی است که شما به عنوان &quot;نقشه&quot; در نظر می گیرید، این قسمتی از شکل است که با داده های شما سر و کار دارد. یک شکل داده شده می‌تواند حاوی محورهای زیادی باشد، اما یک محئور فقط می‌تواند در یک شکل باشد. محورها شامل دو (یا سه مورد در مورد سه بعدی) Axis است (از تفاوت بین Axes و Axis آگاه باشید (Axis برابر جمع Axesاست)) که از محدودیت های داده مراقبت می کند (محدودیت های داده را می توان از طریق axes نیز کنترل کرد.Axes.set_xlim() و متدهای axes.Axes.set_ylim()). هر محور دارای یک عنوان (ست از طریق set_title())، یک x-label (ست از طریق set_xlabel()) و یک مجموعه برچسب y (از طریق set_ylabel()) است.کلاس Axes و توابع عضو آن نقطه ورود اولیه برای کار با رابط شی گرا هستند.انواع ورودی های مورد نیاز برای رسم نمودار:همه ی توابع نمایش نمودار آرایه های numpyیا numpy masked array را به عنوان ورودی انتظار دارند و آرایه هایی مانند جداول داده­ی pandas الزاما سازگار با این کتابخانه نیستند و بهتر است قبل از انجام عملیات روی این دسته از اطلاعات، آنها را به آرایه های نامپای تبدیل کرد.برای مثال داده های این دیتا فریم پانداس را تبدیل به یک آرایه کردیم که جنس آرایه از جنس numpy.ndarray است.a = pd.DataFrame(
    np.random.rand(4, 5),
    columns = list(&#039;abcde&#039;)
  )
a_asarray = a.valuesمقایسه­ ی pyplot و رابط شی گرا (OO-Interface):همانطور که در بالا ذکر شد، اساساً دو راه برای استفاده از Matplotlib وجود دارد:صریحاً شکل ها و محورها را ایجاد کرده و متدها را بر روی آنها فراخوانی کنید (سبک شی گرا (OO)).برای ایجاد و مدیریت خودکار شکل ها و محورها به پای پلات تکیه و از توابع pyplot برای رسم استفاده کنید.پس برای رابط شی گرایی به کد و خروجی آن دقت کنید:fig, ax = plt.subplots()

    ax.plot(x, x, label=&#039;linear&#039;)

    ax.plot(x, x**2, label=&#039;quadratic&#039;)

    ax.plot(x, x**3, label=&#039;cubic&#039;)

    ax.set_xlabel(&#039;x label&#039;)

    ax.set_ylabel(&#039;y label&#039;)

    ax.set_title(&amp;quotSimple Plot&amp;quot)

    ax.legend()توجه کنید که برای ساخت fig مجبور به استفاده از pyplot.figure هستیم.سه محور با مقادیر x مشابه و yبه توان یک، دو و سه و با نام های ذکر شده ساخته و در سه خط بعدی مشخصات جانبی نمودار را وارد می­کنیم.و Legend نشاندهنده­ی همان راهنمای نمودار است که قبلا نیز به آن اشاره کردیم. تمامی رنگ های انتخاب شده، در تم پیشفرض کتابخانه تعیین شده است.در ادامه به روش pyplot میپردازیم:در این روش داده ها را روی محور های ضمنی (متغیری برای آنها تعبیه نشده) قرار می­دهیم.x = np.linspace(0, 2, 100)
 
plt.plot(x, x, label=&#039;linear&#039;)
 plt.plot(x, x**2, label=&#039;quadratic&#039;) 
 plt.plot(x, x**3, label=&#039;cubic&#039;)
plt.xlabel(&#039;x label&#039;)
plt.ylabel(&#039;y label&#039;)
plt.title(&amp;quotSimple Plot&amp;quot)
plt.legend()همانگونه که مشاهده می­کنید نتیجه ی کار یکسان است بنابراین انتخاب روش در این دسته از نمودار ها آزاد است.علاوه بر این، رویکرد سومی وجود دارد، برای موردی که Matplotlib را در یک برنامه رابط کاربری گرافیکی جاسازی می‌کند، که pyplot را به طور کامل حذف می‌کند، حتی برای ایجاد شکل. ما در اینجا در مورد آن بحث نمی کنیم.اسناد و نمونه‌های Matplotlib از هر دو رویکرد OO و pyplot (که به یک اندازه قدرتمند هستند) استفاده می‌کنند، و شما باید با خیال راحت از هر کدام استفاده کنید (اما، ترجیحاً یکی از آنها را انتخاب کنید و به آن بچسبید، به جای مخلوط کردن آنها). به طور کلی، ما پیشنهاد می‌کنیم که pyplot را به طرح‌های تعاملی محدود کنیم (مثلاً در یک نوت بوک Jupyter)، و برای ترسیم غیرتعاملی، سبک OO را ترجیح دهیم (در توابع و اسکریپت‌هایی که قرار است به عنوان بخشی از پروژه بزرگ‌تر مورد استفاده مجدد قرار گیرند).به دلیل اینکه اشیاء و اجزاء مورد استفاده در pyplot بدون نیاز به تعریف متغیر جدید هستند، در صورتی که بعدا به این قسمت ها نیاز پیدا شد، باید مجددا تعریف شوند.در عوض در رابط شی گرا، وقت بیشتری برای طراحی و کد زنی صرف می­شود و برای پروژه هایی که Matplotlib زیاد مورد استفاده قرار نمیگیرند یا صرفا کوچک هستند، بهینه نیست.ادامه مطلب را در قسمت بعدی بخوانید...انجمن هوش مصنوعی دانشگاه اصفهانابولفضل شیشه­ گرامیرمحسن براهیمیعلیرضا عشقی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Sat, 20 Nov 2021 19:21:11 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Pandas در پایتون</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-pandas-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-uawnyvxrba2v</link>
                <description>پانداس چیست ؟پانداس(Pandas)، یک کتابخانه متن‌باز است که کارایی بالا، ساختاری با قابلیت استفاده آسان و ابزارهای تحلیل داده برای زبان برنامه نویسی پایتون را فراهم می‌کند. در واقع، می‌توان گفت پانداس یک کتابخانه قدرتمند برای تحلیل، پیش پردازش و بصری سازی داده‌ها است.چرا کتابخانه Pandas ؟این کتابخانه می‌تواند داده‌ها را با بهره‌گیری از ساختارهای Series و  DataFrame که ارائه می‌کند، به قالبی که برای تحلیل داده‌ها مناسب هستند، مبدل سازد.بسته پانداس حاوی چندین متد برای پالایش مناسب داده‌ها است.پانداس دارای ابزارهای گوناگونی برای انجام عملیات ورودی/خروجی است و می‌تواند داده ها را از فرمت های گوناگون شامل MS Excel ،TVS،CSV  و دیگر موارد بخواند.نصب پانداس1) نصب به کمک pip، برای نصب پانداس، می‌توان قطعه کد زیر را مورد استفاده قرار داد:pip install pandas2) افرادی که آناکوندا (Anaconda) را روی سیستم خود نصب دارند، می‌توانند از دستور زیر برای نصب کتابخانه Pandas استفاده کنند:conda install pandas3) با اینکه پیشنهاد می شود که آخرین نسخه کتابخانه را نصب کنید، ولی اگر کاربری نسخه قدیمی ای را در نظر دارد باید شماره ورژن را دقیقا هنگام نصب وارد کند، مثلا می خواهیم ورژن شماره 0.23.4 را نصب کنیم:conda install pandas = 0.23.4برای اطلاعات بیشترروی این لینک کلیک کنید.خب حالا که آنچه را که برای شروع نیاز بود تقریبا یادگرفتیم و همچنین پانداس دوست داشتنیمون را هم نصب کردیم، میریم سراغ توابع مهم و کاربردیش!توابع مهم و کاربردی Pandas:import :نخستین گام پس از نصب پانداس، وارد کردن بسته آن استimport pandasهمچنین می توان با لقب دادن به pandas در ادامه بجای نام pandas از آن لقب استفاده کنیم، اینکار باعث مختصر شدن و راحتی کار می شود. مانند دستور روبرو:import pandas as pdSeries:برای ساخت Series، متد ()pd.Series فراخوانی می‌شود و یک آرایه، چنانکه در زیر نمایش داده شده، پاس داده می‌شود.series1 = pd.Series([1,2,3,4])print(series1)خروجیDataFrame:دیتافریم، داده‌ها را در سطرها و ستون‌ها سازمان‌دهی می‌کند و از آن‌ها یک ساختار داده دوبُعدی می‌سازد. در قطعه کد زیر ساخت یک دیتافریم را به کمک پانداس مشاهده می کنیم:df = pd.DataFrame({&amp;quotColumn1&amp;quot: [1, 4, 8, 7, 9],&amp;quotColumn2&amp;quot: [&#039;a&#039;, &#039;column&#039;, &#039;with&#039;, &#039;a&#039;, &#039;string&#039;],&amp;quotColumn3&amp;quot: [1.23, 23.5, 45.6, 32.1234, 89.453],&amp;quotColumn4&amp;quot: [True, False, True, False, True]})print(df)خروجیلازمه بگم که روش های دیگه ای برای ساخت دیتافریم در پانداس وجود داره که ما اینجا به یه روش بسنده میکنیم اما شما میتونید خیلی راحت با یه سرچ ساده بقیه روش ها رو هم یاد بگیرید.Read_CSV:یک فایل  CSV (Comma Separated Value)، یک فایل متنی با مقادیری است که به وسیله کاما (,) از یکدیگر جدا شده‌اند.برای وارد کردن فایل های CSV در پانداس مطابق قطعه کد زیر عمل می کنیم (فرض کنید نام فایل name.csv است):data = pd.read_csv(&#039;name.csv&#039;)در اینجا توضیح دو تا از پارامتر های مهم این متد را داریم:· skiprows : برای نادیده گرفتن سطر یا سطرهای خاصی از دیتاست.· low_memory: دیتاست را بصورت داخلی پردازش می کند تا حافظه کمتری در حین تجزیه استفاده شود.to_numpy:برای تبدیل دیتافریم به آرایه که به کمک کتابخانه (Numpy) می توان مدیریت کرد طبق کد زیر عمل می کنیم:df.to_numpy()کتابخانه  Numpy پیش از این آموزش داده شده است اگر هنوز اون آموزش رو نخوندید پیشنهاد می کنم حتما اونا مطالعه کنید.describe:برای مشاهده آمار های عددی دیتافریم و داشتن درک از آن، به صورت روبرو عمل می کنیم:df.describe()خروجیinfo:برای مشاهده اطلاعات مربوط به دیتافریم و درک کلی از ویژگی ها، تایپ مقادیر، و... از این متد می توان استفاده کرد:df.info()خروجیvalue_counts:برای بدست آوردن تعداد تکرار مقادیر، در مثال زیر تعداد تکرار مقدار های ستون Column4 را حساب می کنیم:df[&amp;quotColumn4&amp;quot].value_counts()خروجیT:به کمک کد زیر می توان ترانهاده (جایجایی سطر و ستون) دیتافریم را بدست آوریم:df.Tخروجیsort_index:برای مرتب سازی ستون های دیتافریم از دستور زیر استفاده می کنیم:df.sort_index(axis=1, ascending=False)دقت کنید که دستور بالا بصورت نزولی مرتب سازی می کند و برای اینکه مرتب سازی صعودی داشته باشیم باید به شکل زیر عمل کنیم:df.sort_index(axis=1, ascending=True)sort_values:برای مرتب سازی دیتافریم بر اساس یک ستون خاص (مانند Column2) طبق کد زیر پیش می رویم:df.sort_values(by=&amp;quotColumn2&amp;quot)loc:این متد ابزار مناسبی است که به کاربر کمک می‌کند تا تنها سطرهای معینی را در مجموعه داده بخواند. این مورد، در مثال زیر نمایش داده شده است.df.loc[[0, 4], [&amp;quotColumn3&amp;quot]]خروجیiloc:این متد هم مثل متد قبلی است منتها اینبار از اندیس استفاده می کنیم:df.iloc[2:4, 0:3]در واقع از قابلیت slices مانند آنچه که در نامپای وآرایه ها بود استفاده می کنیم.خروجیBoolean Indexing:یکی از امکانات جذاب پانداس، که به کمک آن می توانیم با ایجاد یک شرط داده ها را فیلتر کنیم، به کد زیر توجه کنید:df[df[&amp;quotColumn4&amp;quot] &gt; 4]در واقع با اینکار دیتافریمی نمایش داده می شود که مقادیر Column1 آن بزرگتر از 4 می باشند.خروجیiat:مقدار دهی دستی به مختصات خاصی از دیتافریم. از دستور زیر استفاده می کنیم:df.iat[4, 0] = 100dropna:برای حذف سطر یا ستون هایی که مقادیر گم شده (missing values) دارند و کامل نیستند:df.dropna(inplace=True)fillna:برای پُر کردن سطر یا ستون هایی که مقادیر گم شده (missing values) دارند و کامل نیستند(مثلا با عدد 5 پُر می کنیم):df.fillna(value=5)isna:برای تشخیص مقادیر گم شده استفاده می شود و خروجی به ما جدولی از بولین ها برای مقدار گم شده بودن یا نبودن می دهد:df.isna()خروجیmerge:کتابخانه پانداس این امکان را برای کاربر فراهم می‌کند که اشیای دیتافریم را با تابع merge() به یکدیگر متصل کنند. در ادامه، دو دیتافریم ساخته و روش ادغام کردن آن‌ها با یکدیگر نمایش داده شده است، دیتا فریم اول:d1 = {&#039;subject_id&#039;: [&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;],&#039;student_name&#039;: [&#039;John&#039;, &#039;Emily&#039;, &#039;Kate&#039;, &#039;Joseph&#039;, &#039;Dennis&#039;]}df1 = pd.DataFrame(d1, columns=[&#039;subject_id&#039;, &#039;student_name&#039;])دیتا فریم دوم:d2 = {&#039;subject_id&#039;: [&#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;],&#039;student_name&#039;: [&#039;Brian&#039;, &#039;William&#039;, &#039;Lilian&#039;, &#039;Grace&#039;, &#039;Caleb&#039;]}df2 = pd.DataFrame(d2, columns=[&#039;subject_id&#039;, &#039;student_name&#039;])ادغام این دو دیتافریم بر اساس subject_id:pd.merge(df1, df2, on=&#x27;subject_id&#x27;)خروجیconcat:به کمک این متد می توان دو دیتافریم را به یکدیگر الحاق کرد. به قطعه کد زیر توجه کنید:pd.concat([df1, df2])خروجیgroup by:به کمک پانداس می توان کل دیتافریم را بر مبنای ستون خاصی دسته بندی کنیم. قطعه کد زیر دیتافریم ما را بر اساس ستون 2Column و جمع مقادیر مربوطه نمایش خواهد داد:df.groupby(&amp;quotColumn2&amp;quot).sum()خروجیcategoricals:یکی از متد های بسیار مهم می باشد که به ما کمک می کند مقادیری با تایپ category داشته باشیم:df[&amp;quotgrade&amp;quot]=[&amp;quota&amp;quot, &amp;quotb&amp;quot, &amp;quotb&amp;quot, &amp;quote&amp;quot, &amp;quota&amp;quot]df[&amp;quotgrade&amp;quot] = df[&amp;quotgrade&amp;quot].astype(&amp;quotcategory&amp;quot)زمانیکه دیتافریم آپدیت شده را به کمک متد info() خروجی می گیریم:خروجییه نکته ای باید بگم اونم اینه که اگه تایپ مقادیر grade رو به category تبدیل نمی کردیم مانند ستون Column2 تایپش object می شد این متد رو حتما بلد باشید که بعدا تو الگوریتم های ماشین لرنینگ بش نیاز خواهیم داشت.time series:برای تولید زمان های مختلف بکار می رود:dti = pd.date_range(&amp;quot2021-10-31&amp;quot, periods=3, freq=&amp;quotH&amp;quot)می توان در کد بالا تعداد دوره زمانی و نوع آن را تغییر داد.خروجیcorrelation:با استفاده از این متد می توان ضریب همبستگی داده ها را بدست آوریم. ضریب همبستگی، شدت رابطه و یا نوع رابطه (مستقیم یا معکوس) را نشان می دهد و همواره بین 1 و 1- می باشد.df.corr()خروجیto_csv:ذخیره دیتافریم به عنوان یک فایل csv:df.to_csv(&amp;quotmyFirstDataFrame.csv&amp;quot)و در پایان باید بگم که سعی کردیم تو این مقاله بهترین و کاربردی ترین توابع کتابخانه ی پانداس را براتون بگیم که بتونید این کتابخونه رو خیلی سریع و با کیفیت بالا یادش بگیرید ولی چیزی که میتونه شما رو بیشتر موفق کنه، اینه که تمرین کنید!موفق باشید!محمد جعفر پوراحسان قیچی ساز</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Sat, 13 Nov 2021 17:17:40 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتابخانه Numpy در پایتون</title>
                <link>https://virgool.io/pubUIAI/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-numpy-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-pnz4bvu0u7ug</link>
                <description>numpyدر پردازش هایی که بر روی داده ها انجام میشود,مانند پردازش تصاویر یا کلیپ های صوتی یا پردازش های دیگر , معمولا داده ها را به شکل آرایه ای از اعداد در نظر میگیرند.برای مثال عکس های دیجیتال را میتوان یک آرایه دو بعدی در نظر گرفت که هر خانه آرایه یک پیکسل از تصویر را نشان میدهد که مقدار رنگ را در آن خانه نمایش میدهد. این مثال و مثال های دیگر , اهمیت آرایه را نشان می دهند.بنابراین باید به دنبال راهی بگردیم که بتوان به راحتی و با سرعت بالا روی اعداد و آرایه اعداد کار کنیم. پایتون با کتابخانه Numpy خود توانسته کمک بزرگی در این زمینه به ما بکند. در ادامه به توضیحات بیشتر درمورد این کتابخانه و معرفی توابع آن می پردازیم . پس با ما همراه باشید.چرا از کتابخانه Numpy استفاده کنیم؟1. این کتابخانه برای ذخیره داده ها از حافظه خیلی کمتری استفاده می کند.2. این کتابخانه بسیار سریع است. و این همان موضوعی است که آرایه های Numpy را از لیست های پایتونی متمایز میکند. آرایه های این کتابخانه تا 50 برابر سریع تر از لیست های پایتونی هستند.3. در Numpyبه راحتی میتوانید یک ماتریس n*n بسازید که با آن زیاد سر و کار دارید.4. در این کتابخانه برای تمام محاسبات ماتریسی , تابع تعریف شده که با استفاده از آنها به راحتی میتوانید محاسباتتان را انجام دهید و اصلا نیازی به نوشتن کد های طولانی نیست.خب حالا که با مزایای این کتابخانه آشنا شدید (البته این را بگم که مزایای این کتابخانه خیلی بیشتر از این مواردی هست که ذکر شد اما ما فعلا به همین چند مورد بسنده میکنیم) دیگر وقتش رسیده است که به معرفی توابع مهم و کاربردی این کتابخانه بپردازیم. پس ادامه این مقاله را از دست ندهید.قبل از استفاده از این کتابخانه شما نیاز به نصب آن دارید. میتوانید از این لینک برای نصب این کتابخانه کمک بگیرید : How to install numpyبعد از نصب Numpy, آن را با کلمه کلیدی import در برنامه های خود وارد کنید. تا بتوانید از آن استفاده کنید.import numpyبرای سهولت در استفاده و فراخوانی این کتابخانه می توان آن را به صورت زیر import کرد (کلمه کلیدی as باعث می شود بتوانیم از نامی که بعد از آن آمده به جای نام کتابخانه استفاده کنیم)import numpy an npمعرفی توابع مهم و کاربردی Numpy:1. array() : ساخت آرایه مورد نظر. به عنوان ورودی این تابع میتوانید list یا tuple یا هر شیئ آرایه مانند دیگری بفرستید.arr = np.array([1,2,3,4,5])
print(arr)2. full() : پر کردن همه خانه های یک آرایه با عددی مشخص.full = np.full((4,2),2.3)
print(full)3. insert() : درج عنصر در ایندکس مشخص درآرایه. پارامتر های ورودی این آرایه به ترتیب نام آرایه, ایندکس درج و مقدار است.arr = np.array([1,2,3,4,5,6,7,8,9,10])
inserted = np.insert(arr,2,20)
print(arr)
print(inserted)❗️توجه کنید که این تابع, یک آرایه تک بعدی برمیگرداند. پس درصورت لزوم باید تابع را reshape کنید که در ادامه با این تابع نیز آشنا خواهید شد.4. delete() : حذف عنصر از آرایه. پارامتر های ورودی این تابع نام آرایه و ایندکس حذف.arr = np.array([1,2,3,4,5,6,7,8,9,10]) 
deleted= np.delete(arr,2,20) 
print(arr) 
print(deleted)❗️توجه کنید که این تابع, یک آرایه تک بعدی برمیگرداند. پس درصورت لزوم باید تابع را reshapeکنید که در ادامه با این تابع نیز آشنا خواهید شد.5. type() : مشاهده نوع آبجکت ها.arr = np.array([1,2,3,4,5,6,7,8,9,10])
print(type(arr))❗️همانطور که مشاهده میکنید, نوع آرایه ای که ساختیم ndarray است. آبجکت آرایه در ndarray , numpy نامیده میشود.6.  dtype() : یک propertyاست برای مشاهده نوع عناصر موجود در یک آرایه.arrChar = np.array([&#039;a&#039;,&#039;b&#039;,&#039;c&#039;])
arrString = np.array([&#039;maryam&#039;,&#039;danial&#039;,&#039;arshia&#039;]) 
arrFloat = np.array([1.2,3.2,1.0]) 
print(arrChar ) 
print(arrString )
print(arrFloat)7. astype(&#x27;datatype&#x27;) : تغییر نوع عناصر یک آرایه. خروجی این تابع یک آرایه جدید است, پس یک متغیر جدا برای آن در نظر بگیرید.arr = np.array([1.1,2.1,3.1])
newarr = arr.astype(&#039;i&#039;)
print(arr)
print(arr.dtype)
print(newarr)
print(newarr.dtype)8. [index] : دسترسی به عناصر یک آرایه.arr = np.array([1,2,3,4])
print(arr[0] + arr[2] * arr[3] / arr[1])❗️ فراموش نکنید که ایندکس اعضا هر آرایه از صفر شروع میشوند.❗️در صورت استفاده از ایندکس منفی برای دسترسی به اعضا آرایه, پیماش آرایهاز آخر شروع می شود. با مشاهده کد زیر, بیشتر متوجه این موضوع خواهید شد.arr = np.array([1,2,3,4]) 
print(arr[-1])
print(arr[3])9. Slicing() : دسترسی به اعضا یک آرایه از یک ایندکس مشخص تا ایندکس دیگر.میتوانید با نوشتن [start : end : step] رو به روی اسم آرایه مورد نظر این کار را انجام دهیدتوجه داشته باشید:درصورت ننوشتن start , صفر در نظر گرفته میشود.درصورت ننوشتن end , سایز آرایه در نظر گرفته میشود.درصورت ننوشتن step , یک درنظر گرفته میشود.arr = np.array([1,2,3,4,5,6,7]) 
print(arr[1:5:2])
print(arr[0:5])
print(arr[4:])
print(arr[:3])10. view() :کپی گرفتن از آرایه. اما در نظر داشته باشید که اگر بعد از آن تغییری در آرایه اصلی ایجاد کنید آن تغییر روی آرایه کپی نیز اعمال میشود.arr = np.array([1,2,3,4,5,6,7]) 
x = arr.view
arr[0] = 42
print(arr)
print(x)11. for in : پیمایش روی اعضا آرایه.arr = np.array([1,2,3,4,5,6,7]) 
for x in arr:
    print(x)12. ndenumerate () : مشاهده ایندکس هر عضو از آرایه در کنارش, هنگام پیمایش.arr = np.array([1,2,3,4,5,6,7])
for idx, x in np.ndenumerate(arr):
     print(idx,x)13. concatenate () : وصل کردن چند آرایه به یکدیگر و تبدیل آن ها به یک آرایه. این تابع یک آرگومان ورودی axis دارد که در قسمت توابع آرایه دو بعدی به توضیح آن خواهیم پرداخت.arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
arr = np.concatenate((arr1,arr2))
print(arr)14. arry_split () : شکستن یک آرایه به چند آرایه دیگر. آرگومان دوم این تابع تعداد (n)آرایه هایی که میخواهید آرایه اصلی به آن تقسیم شود را مشخص میکند.arr = np.array([1,2,3,4,5,6,7])
newarr = np.array_split(arr,3)
print(newarr)
print(newarr[2])❗ توجه کنید که خروجی این تابع, آرایه ای شامل n آرایه است.15. where (element or …) : انجام عملیات جست و جو در آرایه.arr = np.array([1,2,3,4,5,4,7])
x = np.where(arr == 4)
print(x)❗️ همانطور که در کد بالا مشاهده میکنید, از تابع خواسته شده اعداد 4 موجود در آرایه را پیدا کند و تابع نیز ایندکس مکان هایی که 4 وجود داشته است را برگردانده است.16. searchsorted(array, element, side) : مشخص کردن جهت شروع عملیات جستجو در آرایه.arr = np.array([6,7,8,9])
x = np.searchsorted(arr , 7 , side=&#039;right&#039;)
y = np.searchsorted(arr , 7 , side=&#039;left&#039;)
print(x)
print(y)17. sort() :مرتب سازی آرایه.num = np.array([3 , 2 , 0 ,1])
string = np.array([&#039;banana&#039;,&#039;cherry&#039;,&#039;apple&#039;])
boolean = np.array([True,False,True]
print(np.sort(num))
print(np.sort(string ))
print(np.sort(boolean ))18. Filtering():این امر با استفاده از یک آرایه بولین صورت میگیرد. قطعه کد  زیر را با دقت مشاهده کنید.arr = np.array([3 , 2 , 0 ,1])
x = [True,False,True,False]
filteredarr = arr[x]
print(filteredarr)❗️شما با استفاده از یک آرایه boolean, تمامی عانصر آرایه که ایندکس متناظر آنها در آرایه بولین true است را بدست می آورید. یعنی آرایه خود را فیلتر می کنید.✔️ در ادامه به تعریف آرایه های چند بعدی با استفاده از این کتابخانه خواهیم پرداخت.19. آرایه دو بعدی:twoDarr = np.array([[1,2,3],[4,5,6]])
print(twoDarr)20. آرایه سه بعدی:arr = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
print(arr)❗️ برای هر آرایه n بعدی دیگر هم به همین صورت عمل می کنیم.21. reshape() :بهتر است برای ساخت آرایه سه بعد به بالا, ابتدا یک آرایه تک بعدی بسازید و سپس با این متد, بعد آن را تغییر دهید.arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
newarr1 = arr.reshape(4,3)
newarr2 = arr.reshape(2,3,2)
print(newarr1)
print(newarr2)22. ndim() : چک کردن چند بعدی بودن یک آرایه.a = np.array(42)
b = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
c = np.array([[1,2,3],[4,5,6]])
d = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])
print(a.ndim)
print(b.ndim)
print(c.ndim)
print(d.ndim)23. shape () : تعداد عناصر در هر بعد آرایه را نمایش می دهد.arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12])
print(arr.shape)24. stack () : تبدیل آرایه های یک بعدی به یک آرایه چند بعدی.arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
arr = np.stack((arr1,arr2), axis=1)
newarr = np.stack((arr1,arr2),axis=0)
print(arr)
print(newarr)❗️ با توجه به مقدار axis: در حالت اول, عناصری که در یک ستون قرار دارند, تشکیل یک آرایه میدهند و همه این ها در یک آرایه دیگر قرار میگیرند. در حالت دوم , آرایه ها در زیر یکدیگر قرار میگیرند و تشکیل آرایه دو بعدی می دهند.✔ تمامی توابعی که برای آرایه تک بعدی ذکر شدند, برای آرایه های n بعدی نیز به کاربرده میشوند.با این تفاوت که ازn ایندکس برای دسترسی به عناصر آرایه استفاده میشود.معرفی ماژول random از کتابخانه numpy:25. ابتدا این ماژول را به برنامه اضافه میکنیم.from numpy import random26. rand() : ایجاد یک عدد رندوم اعشاری بین 0 تا 1.x = random.rand()
print(x)27. randint (range, n) : ایجاد یک آرایه n بعدی با عناصر بین 0 تا range.x = random.randint(100,size=(3,5))
print(x)28. choice () : ایجاد آرایه با مشخص کردن احتمال وجود عناصر مختلف.x = random.choise([3,5,7,9],p=[0.1,0.3,0.6,0.0],size(3,5))
print(x)در این مقاله ما سعی کردیم مهم ترین توابعی که شما برای شروع کار با کتابخانه Numpyنیاز دارید را برایتان قرار دهیم و توضیح مختصری در مورد هریک بدهیم.امیدواریم که مورد استفاده شما قرار گرفته باشد.مریم سادات صفوی دانیال توکلی</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Sat, 30 Oct 2021 12:42:46 +0330</pubDate>
            </item>
                    <item>
                <title>کاربرد های NLP(بخش دوم)</title>
                <link>https://virgool.io/pubUIAI/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D9%87%D8%A7%DB%8C-nlp%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-pfphgsuq3ver</link>
                <description>با افزایش روز شمار جمعیت ساکنان کره‌ی زمین و در نتیجه تعداد بیماران ،اهمیت پردازش سریع اطلاعات پزشکی و تشخیص به موقع بیماری و شروع فرآیند درمان از اهمیت فراوانی برخوردار است . در مطلب هفته‌ی گذشته به معرفی۱۰ مورد از رایج‌ترین کاربردهای پردازش زبان طبیعیNLP   پرداختیم اما با توجه به بحران جهانی کرونا و اهمیت وضعيت سلامت و بهداشت با هدف بقای بهتر زندگی کنونی در آخرین پست مربوط به کاربردهای NLP   تصميم گرفتیم که به دنبال ردپای آن در دنیای سلامت و مراقبت‌های پزشکی بگردیم .این روزها سازمان‌های بهداشتی بیش از پیش به نسخه‌های دیجیتالی و فناوری‌های داده محور دسترسی دارند که تحلیل و استفاده درست و نتیجه‌بخش از آن‌ها در جهت مراقبت‌های بهداشتی علاوه بر تسریع روند بهبود سلامت و درمان باعث افزایش درآمد فرصت‌های تجاری نیز می‌شود .اما برای این سازمان‌ها استخراج و پردازش تریلیون ها گیگابایت داده از منابع با فرمت‌ و حجم‌های متفاوت کار آسانی نیست اما NLP   با روش‌های منحصربه‌فرد جمع‌اوری اطلاعات از زبان انسان و استخراج الگوها ، کشف معنی و فرمول بندی این اطلاعات به کمک متخصصان پزشکی آمده است.ممکن است تا به حال برای شما نیز پیش آمده باشد که حین توضیح شرح حال خود نزد پزشک یا پرستار بخش عمده توجه آن‌ها صرف ثبت اطلاعات پزشکی و پرونده سازی شود و زمان بررسی،تشخیص و پیگیری بیماری شما به بعد موکول شود در اینجاست که NLP   با تهیه‌ی نسخه دیجیتال از توضيحات و بازخورد‌های شما در حین بیان و درک مهمترین بخش‌های ان و خلاصه سازی مدارک در بهترین زمان با کمترین خطای ممکن علائم اولیه را شناسایی و در اختیار نیروی متخصص قرار می‌دهد که باعث می‌شود پزشک و پرستار، بخش بیشتری از توجه و وقت خود را در کنار بیمار سپری کنند و بابت فراموش شدن جزئیات ریز اما مهمی که ممکن است ذهن آدمی در یادآوری آنان ضعف داشته باشد نگران نباشند. این چرخه باعث افزایش چشمگیر کیفیت خدمات ارائه شده به بیمار و تسهیل روند کاری کادر درمان خواهد شد. حتی NLP   پس از اتمام کار خود در این فرآیند با تحليل صدای بیماران در هنگام تشریح فرآیند درمان و توضیح خدمات ارائه شده احساسات و بازخورد کیفیت آنان را از مرکز پزشکی، کادر درمان و داروهای مصرف شده را به دیگران نشان می‌دهد که در نوع خود باعث صداقت بیشتر بین سازمان‌های پزشکی و دارویی با مخاطبان خود و در نتیجه صرفه جویی در وقت و سرمایه افراد خواهد شد.موضوع دیگری در بحث سلامت ، ویروس کوید-19 می باشد که همه ما به نوعی درگیر آن شده ایم در ادامه این پست به سه کاربرد NLP  برای مقابله با کرونا می پردازیم .الگوریتم های NLP  در حال حاضر قادر به ساخت رشته های پروتئینی شده اند به شکلی که می توانند جهش های ژنتیکی که ویروس را قادر به گریز از سیستم دفاعی بدن می کند پیشبینی کنند .نکته کلیدی، این موضوع می باشد که بسیاری ویژگی های سیستم بیولوژیک را می توان به فرم کلمات و جملات ترجمه کرد .در طی چند سال اخیر تعداد انگشت شماری از محققان نشان داده اند که رشته های پروتئینی را می توان با استفاده از تکنیک های NLP  مدل سازی کرد . در طی آزمایشی محققان توانستند با استفاده از NLP  مدلی را طراحی کنند که رشته های پروتئنینی به گونه ای در کنار هم قرار بگیرند که ویروس را در برابر سیستم دفاعی بدن ایمن می کند یعنی پیشبینی شود که  ویروس با چه جهش ژنتیکی می تواند توسط آنتی بادی ها شناسایی نشود . ایده اصلی این است که تفسیر ویروس توسط سیستم ایمنی بدن مشابه تفسیر یک جمله توسط انسان است.(نقشه ای از همه جهش های ژنتیکی ثبت شده ویروس کوید-19)کاربرد دیگر NLP  در تحلیل داده های سیستم های امنیتی نظارتی و همچنین پرسشنامه های تشخیص کرونا برای تخمین تعداد مبتلایان می باشد یعنی با شناسایی افرادی که تست کرونای آنها مثبت بوده ، ردگیری آنها در اماکن عمومی ، تشخیص افراد نزدیک به آنها که  مستعد به بیماری هستند  و ادامه این چرخه شناسایی و ردگیری به یک شبکه گسترده از اطلاعات فردی میرسیم که تحلیل آن به کمک الگوریتم های NLP  مزیت بزرگی برای یافتن مبتلایان در یک جامعه آماری می باشد.برای مثال دولت چین که یکی از قوی ترین سیستم های نظارتی بر شهروندان خود را دارند توانسته با استفاده از برنامه هایی که بر روی گوشی نصب می شود افراد مبتلا را زیر نظر بگیرد .این اپ های این ویژگی را دارند که اگر فردی با فرد مبتلا در تماس باشد به او اخطار می دهد و از او می خواد تا پرسشنامه ی سلامتی را به طور مجازی پر کند و وضعیت سلامتی خود را بسنجند این داده ها به طور مستقیم در دسترس وزارت بهداشت قرار میگیرد تا تشخیص داده شود که آیا این فرد نیازمند قرنطینه یا بستری شدن هست یا نه هم اکنون کشورهای دیگری از جمله سنگاپور و بریتانیا نیز از سیستم های مشابهی استفاده می کنند.یکی دیگراز قابلیت های NLP  که هفته پیش نیز در مورد آن صحبت شد تحلیل احساسات و نظرات مردم در شبکه های اجتماعی میباشد که بسیاری از شرکت های تجاری برای ارزیابی کالا و محصول خود از آن استفاده میکنند . با شیوع ویروس کوید-19 مراکز تحقیقاتی ، دانشگاه ها و بیمارستان ها نیز از این فناوری برای آگاهی از تاثیر کوید-19 بر زندگی مردم و نظرات آنها در مورد آن استفاده کردند . برای مثال طی جمع آوری نظرات کاربران در مورد شمع های معطری که در سایت آمازون در امریکا به فروش می رسد یافت شد که به مرور زمان و با افزایش تعداد مبتلایان کرونا نظرات منفی نیز افزایش یافته است به طوری که در ایالت های نیویورک و کالیفرنیا و بعد تر فلوریدا که بیشترین تعداد مبتلایان را دارند نظراتی با این مظمون که بوی شمع های کم شده و یا همچون قبل بویی را احساس نمی کنند افزایش یافته (لازم به ذکر است که یکی از نشانه های کرونا کاهش حس بویایی است)https://www.nature.comhttps://www.arcgis.comhttps://nextstrain.orghttps://www.statista.comhttps://www.technologyreview.comhttps://blog.einstein.ai/progen/www.tdan.comwww.global.hitachi-solution.comwww.lexalytics.comwww.binaryfountain.com</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Mon, 05 Apr 2021 21:04:43 +0430</pubDate>
            </item>
                    <item>
                <title>کاربردهای NLP(بخش اول)</title>
                <link>https://virgool.io/pubUIAI/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%D9%87%D8%A7%DB%8C-nlp%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-fqeud5ozfy9l</link>
                <description>در پُست های قبل با پردازش زبان طبیعی (Natural Language Processing)، به عنوان زیرشاخه‌ای از هوش مصنوعی با هدف توانمندسازی بدون عیب و نقص رایانه‌ها در خواندن،رمزگشایی،فهم و درک زبان انسانی آشنا شدیم که به علت قوانین پیچیده‌ی حاکم بر زبان انسان در هنگام برقراری ارتباط با دیگران یکی از دشوارترین چالش‌های علوم کامیپوتر به حساب می‌آید. شاید هنوز فاصله‌ی زیادی تا تحقق هدف نهاییNLP وجود دارد اما به لطف پیشرفت روز افزون تکنولوژی و الگوریتم‌های هوش مصنوعی،پردازش زبان طبیعی در مدت زمان کوتاهی راه خود را به زمینه‌های مختلف پیدا کرده‌ست که در ادامه برای درک ردپای هوش مصنوعی و قدرت NLP در زندگی کنونی نگاهی به برخی از کاربردهای آن می‌اندازیم .1.تحلیل احساسات(Sentiment Analysis):برای تشخیص تفاوت های ظریف در احساسات و عقاید و میزان مثبت یا منفی بودن نظرات روزانه در شبکه‌های اجتماعی2.طبقه بندی متن(Text Classification):تجزیه و تحلیل،درک خودکار،پردازش،دسته بندی و استخراج معنا از متون بدون ساختار و دستور3.دستیار مجازی و چت‌بات‌(Chatbot &amp; Virtual Assistant):برای پاسخ‌گویی خودکار با کوتاهترین و سریع‌ترین توضيحات به سوالات کاربران و مشتری‌ها در هر ساعت شبانه‌روز مانند Siri,Cortana,Bixby,Google Assistants4.استخراج متن(Text Extraction):استخراج داده‌ها و کلمات خاص و کلیدی مورد نظر از متن5.ترجمه ماشینی(Machine Translation):یکی از اولین کاربردهای NLP برای ترجمه خودکار در سریع‌ترین زمان و تسهیل ارتباطات مانندGoogle translate یا نمونه فارسی آن به نام ترگمان6.خلاصه متن(Text Summarization)خلاصه متن با استخراج مهمترین اطلاعات متن با هدف ساده سازی روند عبور از حجم گسترده ای از داده ها ، مانند مقالات علمی ، محتوای اخبار یا مستندات قانونی7.هوش اقتصادی(Market Intelligence):کسب اطلاعات و شناسایی نیازهای مشتری برای پاسخ‌گویی به نیازهای آنان در مقایسه با رقبای مشابه8.تصحیح خودکار(Auto-Correct):در نرم افزارهای بررسی گرامر و توابع تصحیح خودکار برای شناسایی خطاهای دستور زبان،هجی یا ساختار جمله مانند Google Docs,Grammarly,Microsoft word9.تشخیص گفتار(Speech Recognition):تبدیل زبان گفتاری به قالبی قابل خواندن توسط ماشین10.فیلترهای هرزنامه(Spam filters):یکی از رایج‌ترین کاربردهای NLP و تشخیص ایمیل‌های هرز از غیر هرزنامهبا وجود کاربردهای بسیار سودمند فعلی پردازش زبان طبیعی متخصصان معتقدند که آخرین گام هوش مصنوعی، ارتباط و مکالمه‌ی سیستم‌ها با انسان‌ها به شکلی‌ست که نتوانیم تشخیص دهیم که به جای یک انسان، با کامپیوتر ارتباط برقرار کرده‌ایم که این معیار توسط آزمون تورینگ که آخرین مرحله‌‌ی تست هوشمندی ماشین در زمينه‌یNLP است،بررسی میشود.منابع:1-www.medium.com2-www.thetechnomaniac.com3-www.towardsdatascience.com4-www.monkeylearn.com5-www.expert.ai6-www.chatbotsmagazine.com7-www.analyticsvidhya.com</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Sun, 28 Mar 2021 20:01:19 +0430</pubDate>
            </item>
                    <item>
                <title>چگونگی کارکرد NLP</title>
                <link>https://virgool.io/pubUIAI/%DA%86%DA%AF%D9%88%D9%86%DA%AF%DB%8C-%DA%A9%D8%A7%D8%B1%DA%A9%D8%B1%D8%AF-nlp-zodpabmjzylf</link>
                <description>هوش مصنوعی از بخش‌های مختلفی تشکیل شده و یکی از این قسمتها NLP یا پردازش زبان طبیعی است.اما سوالی که مطرح می‌شود این استکه جایگاه NLP در هوش مصنوعی کجاست؟می دانیم NLP شامل مجموعه‌ای از فرایند هاست که باعث ارتباط ماشین و زبان طبیعی می‌شود، از مجموعه پست‌های قبل می‌دانیم که به کمک ML (یادگیری ماشین) می‌توانیم به ماشین توانایی یادگیری بدهیم ، حالا میتوانیم واضح تر به مساله نگاه کنیم و به طور کلی می‌توان گفت الگویتم‌های NLP الگوریتم‌های ML را با متن مرتبط میکنند.برای درک بهتر یک مثال میزنیم :یکی از کاربردهای NLP تحلیل عواطف هست ، مثلا به کمک تحلیل عواطف میتوانیم کامنت‌های زیر یک پست اینستاگرام را بررسی کنیم و حدس زده میشود کدومشان مثبت ، کدام منفی و کدام خنثی است،در مرحله اول به کمک NLP متن را به بردار تبدیل می کنیم ، برای این کار در ایتدا یک فضای n بعدی تعریف می‌کنیم ( n تعداد لغات متمایز در متن است) سپس هر جمله بر اساس تعداد تکرار لغات یک بردار می‌شود و از روی زاویه بردارها نزدیکی معنی جملات حدس زده می‌شود ، البته برای بهبود این کار روشی به کار گرفته میشود که لغاتی که تکار زیاد داشته باشد اثر کمتری در بردار داشته باشد مثلا در یک متن فارسی به تعداد بالا از &quot;است&quot; استفاده می‌شود و چنان که اثر این لغت را کم کنیم بردارها بهینه‌تر می‌شوند.گام دوم این است که این بردارها را به الگوریتمهای ML بدهیم تا پردازش انجام شود.حال چنانچه کامنتی داده شود می‌توانیم پیش‌یینی داشته باشم.</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Fri, 19 Mar 2021 21:59:59 +0330</pubDate>
            </item>
                    <item>
                <title>کاربردهای یادگیری عمیق</title>
                <link>https://virgool.io/pubUIAI/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%D9%87%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-l6gfcxamzmww</link>
                <description>کاربرد های یادگیری عمیقدر پست قبلی به چیستی یادگیری عمیق و انواع الگوریتم های آن پرداختیم و در این پست با شش مورد از کاربرد های یادگیری عمیق در دنیای امروز آشنا خواهیم.1. ماشین های خودرانماشین های خودران (self-driving cars) ازپدیده هایی اند که توسط یادگیری عمیق توسعه می یابند.میلیون ها مجموعه داده بدست آمده از سنسور ها،نقشه ها،دوربین ها به سیستمی داده میشود تا مدل بسازد،به ماشین یاد دهد و سپس نتیجه اش بررسی شود.چرخه ای منظم از تست و استفاده از یادگیری عمیق کمک میکند که در تعداد بسیار سناریو های پیش بینی نشده نیز، رانندگی امن بماند.2. جمع آوری اخبار و شناسایی اخبار کذبهم اکنون استفاده از یادگیری عمیق این امکان را به فرد میدهد که اخباری که به دست او میرسد،با توجه به فرهنگ،موقعیت جغرافیایی،موقعیت اجتماعی و وضعیت اقتصادی و همین طور ویژگی ها و علایق شخصی فرد،شخصی سازی و فیلتر شده باشند.علاوه بر این مورد،شناسایی اخبار کذب و دروغین که در دنیای امروز بسیار زیاد هستند و همین طور و فیلتر کرد آن ها،از کاربرد ها دیگر یادگیری عمیق است.البته باید توجه داشت که  آماده سازی یک شبکه عصبی یادگیری عمیق، با توجه به اینکه اخبار همیشه شامل نظر های شخصی نیز هستند،چالش های فراوانی دارد وجدا سازی اخبار درست از نادرست همیشه ممکن نیست.3. دستیار های مجازیاز محبوب ترین و پر استفاده ترین کاربرد های یادگیری عمیق،میتوان به دستیار های مجازی(Virtual Assistants) اشاره کرد.نمونه های زیادی از این دستیار ها مانند alexa،siri،google assistant،cortana وجود دارند.با کمک یادگیری عمیق،هر ارتباط با این دستیار ها و درخواست از آن ها، فرصت یادگیری بیشتر درباره صدا و نحوه حرف زدن شما،علایق شما مانند موسیقی های مورد علاقه شما،مکان هایی که دوست دارید و ... را در اختیارشان میگذارد.آن ها همینطور از کاربرد های دیگر یادگیری عمیق مانند ترجمه کردن و یا تولید متن برای کمک به شما استفاده میکنند.4. تولید متنتولید متن (text generation) به این شکل است که تولید کننده ها،با استفاده از شبکه های عصبی مختلف مانند RNN و الگوریتم های یادگیری عمیق،علامت های نگارشی،دستور زبان،ارتباط کلمات با هم،سبک ها و ... را می آموزند و سپس می توانند با استفاده از مدلی که ایجاد کرده اند،متن جدیدی با ویژگی های مناسب تولید کنند.5. رنگی کردن تصاویر سیاه سفیدرنگی کردن تصاویر سیاه سفید از جمله کارهای بسیار وقت گیر بوده که به صورت دستی و توسط انسان، انجام میشده است.اما امروز اینکار با استفاده مدل های یادگیری عمیق و و شبکه های عصبی مانند شبکه‌های عصبی پیچشی  (CNN) انجام میشود که سرعت این کار را بسیار افزایش داده است.6. بازیابی پیکسلدر سال 2017،  محققین google brain، شبکه ای عصبی را آموزش دادند تا تصاویر با رزولوشن بسیار کم از چهره افراد را دریافت کند و چهره را پیش بینی کند.این روش به اسم Pixel Recursive Super Resolution شناخته میشود و کیفیت تصاویر با رزولوشن پایین را بسیار بهبود میدهد.منابع:mygreatlearning.comforbes.commedium.com</description>
                <category>انجمن هوش مصنوعی دانشگاه اصفهان</category>
                <author>انجمن هوش مصنوعی دانشگاه اصفهان</author>
                <pubDate>Mon, 15 Feb 2021 18:01:33 +0330</pubDate>
            </item>
            </channel>
</rss>