مرجع کامل ماژول numpy – داده کاوی با نامپای

مرجع کامل ماژول numpy – داده کاوی با نامپای

  buy_icon  

مقدمه – آشنایی با ماژول نامپای (numpy)

بعد از فراگیری مابحث پایه برنامه نویسی پایتون و انواع داده ها در پایتون، اولین ماژولی که باید برای کار با داده فراگرفت کتابخانه numpy است. ماژول numpy یک ابزار مفید برای تعریف ماتریس و آرایه در پایتون است و اکثر ماژول های دیگر در حوزه داده کاوی برپایه آن استوار هستند.

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

 

خب دیگه بپریم داخل کد!!

برای انجام مثال های این مقاله لازم است تا با پایتون آشنا باشید، بنابراین پیشنهاد می شود حتما مبحث مربوط به آموزش کامل برنامه نویسی پایتون صفر تا صد را مطالعه کنید.

 

نصب و ایمپورت ماژول numpy

به راحتی در خط فرمان با تایپ عبارت زیر می توان آن را نصب کرد:

وارد کردن ماژول به داخل کد

 

تعریف ماتریس دلخواه در پایتون

لازم به ذکر است که المان همان درآیه های ماتریس می باشد.

به ترتیب تعریف ماتریس یک بعدی، دو بعدی و سه بعدی به صورت زیر می شود

اینکار را تا ابعاد بی نهایت می توان ادامه داد.

برای مشاهده خروجی می توانیم از print استفاده کنیم. مثلا برای ماتریس سوم به این صورت می شود:

در خروجی چنین چیزی خواهی دید:

[[[1 2 3]
[4 5 6]
[7 8 9]]

[[1 2 3]
[4 5 6]
[7 8 9]]]

دسترسی به المان های مختلف آرایه

روش های مختلفی برای دسترسی به المان های آرایه وجود دارد که چند نمونه مهم به صورت زیر است. در اینجا از ماتریس دو بعدی mat2 که در بالا تعریف شد استفاده می کنیم:

استخراج مقادیر ستون صفرم

array([1, 4, 7])

استخراج مقادیر سطر صفرم

array([1, 2, 3])

استخراج المان در ستون و سطر صفرم

1

استخراج المان در ستون و سطر آخر

9

استخراج المان های موجود روی سطر صفرم و اول و ستون اول

array([2, 5])

 

کلاس ndarray

اگر از دستور type استفاده کنید متوجه خواهید شد که از کلاس ndarray استفاده کرده ایم. این مهمترین کلاس در ماژول numpy است که متدها و وِیژگی های قدرتمندی دارد.

خروجی

numpy.ndarray

در ادامه مهمترین متدها و ویژگی های این کلاس را بررسی می کنیم.

 

اتریبیوت های مهم کلاس ndarray

تعداد محور های یک آرایه (یعنی ماتریس چند بعدی است)

3

ابعاد یک آرایه (یعنی ماتریس چند در چند است)

(2, 3, 3)

تعداد کل المان های ماتریس

18

 

تایپ (نوع) آرایه

هنگام ایجاد کردن یک آرایه جدید می توان نوع آن را مشخص کرد.

[1 2 3]

int32

همچنین dtype  را می توان از نوع int32, float64, complex و … در نظر گرفت. اگرچه به صورت خودکار بسته به محتوای آرایه این مقادیر تعیین می شوند.

 

ایجاد انواع آرایه با numpy

ایجاد ماتریس صفر

ماتریس صفر ماتریسی است که تمام درآیه (المان) های آن صفر است.

array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])

ایجاد ماتریس یک

ماتریس یک آرایه ای است که تمام المان های آن یک باشد.

array([[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]],

[[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]], dtype=int16)

 

ایجاد ماتریس خالی

array([[-6.36529244e+047, 5.91732055e+036, -1.03315769e+046],
[ 2.13683139e+265, -3.80589540e+260, -8.17888329e+097]])

ایجاد دنباله ای از اعداد با arange

array([10, 15, 20, 25])

ایجاد دنباله ای از اعداد با linspace

array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])

 

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

 

ایجاد اعداد و ماتریس های تصادفی با توزیع های مختلف ( آرایه های رندوم)

ماتریس تصادفی با توزیع یکنواخت

تعریف ماتریس رندوم با توزیع یونیفرم در پایتون و نامپای بدین صورت است:

array([[0.21503089, 0.14637262, 0.34910975],
[0.17771534, 0.93440738, 0.97995342]])

 

ماتریس تصادفی با توزیع نرمال 

تعریف ماتریس تصادفی در پایتون با توزیع گوسی با نرمال به این صورت است:

array([[ 0.28713911, 0.68073647, -0.93362276],
[-0.60777548, 0.31116883, 1.50166547]])

عدد تصادفی صحیح 

تولید عدد رندوم بین دو مقدار پایین و بالا در numpy به این صورت است:

7

دنباله ای از اعداد تصادفی 

array([ 6, 22, 4, 9, 20, 3, 12, 17, 4, 25])

انتخاب یک المان به صورت تصادفی 

برای نمونه برداری و انتخاب یک المان از دنباله به این صورت عمل می کنیم :

0.72060181

 

 

تغییر ابعاد آرایه numpy

تغییر ابعاد به صورت دلخواه

فرض کنید می خواهیم یک ماتریس 4 در 5 حاوی دنباله ای از اعداد 1 تا 20 داشته باشیم، به این صورت عمل می کنیم:

array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20])

سپس

array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])

تبدیل ماتریس به یک دنباله

در حالت بالا یک دنباله را به صورت یک ماتریس در آوردیم. حال می توانیم معکوس همان کار را بدین صورت انجام دهیم:

array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20])

معکوس یک ماتریس

array([[ 1, 6, 11, 16],
[ 2, 7, 12, 17],
[ 3, 8, 13, 18],
[ 4, 9, 14, 19],
[ 5, 10, 15, 20]])

 

اعمال ریاضی روی آرایه ها (جع و تفریق و ضرب و تقیسم ماتریسها) در numpy

با فرض تعریف دو ماتریس زیر :

[[11 12 13 14]
[21 22 23 24]
[31 32 33 34]
[41 42 43 44]]

 

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]

اعمال ریاضی مهم به صورت زیر است:

جمع و تفریق دو ماتریس

[[11 13 15 17]
[25 27 29 31]
[39 41 43 45]
[53 55 57 59]]

[[11 11 11 11]
[17 17 17 17]
[23 23 23 23]
[29 29 29 29]]

ضرب دو ماتریس به صورت ماتریسی

یا

array([[ 320, 370, 420, 470],
[ 560, 650, 740, 830],
[ 800, 930, 1060, 1190],
[1040, 1210, 1380, 1550]])

ضرب دو ماتریس به صورت درآیه به درآیه 

array([[ 0, 12, 26, 42],
[ 84, 110, 138, 168],
[248, 288, 330, 374],
[492, 546, 602, 660]])

یا

array([[ 0, 12, 26, 42],
[ 84, 110, 138, 168],
[248, 288, 330, 374],
[492, 546, 602, 660]])

ضرب ماتریس در یک عدد

array([[110, 120, 130, 140],
[210, 220, 230, 240],
[310, 320, 330, 340],
[410, 420, 430, 440]])

تقسیم دو ماتریس هم اندازه به صورت درایه به درایه 

array([[0. , 0.08333333, 0.15384615, 0.21428571],
[0.19047619, 0.22727273, 0.26086957, 0.29166667],
[0.25806452, 0.28125 , 0.3030303 , 0.32352941],
[0.29268293, 0.30952381, 0.3255814 , 0.34090909]])

تقیسم ماتریس بر یک عدد

درواقع تقیسم تمام درایه ها بر یک عدد

array([[1.1, 1.2, 1.3, 1.4],
[2.1, 2.2, 2.3, 2.4],
[3.1, 3.2, 3.3, 3.4],
[4.1, 4.2, 4.3, 4.4]])

عمل های آماری مهم روی ماتریس

عملگر های آماری درواقع تنها روی یک ماتریس اعمال می شود. برای مثال ماتریس زیر را در نظر بگیرید:

محاسبه مین و ماکس

استخراج مقدار مینیمم و ماکزیمم ماتریس به صورت کلی 

0.96496645

0.1305674

 

استخراج مقدار مینیمم و ماکزیمم ماتریس در راستای محور صفرم (ستون)

array([0.15321696, 0.96496645, 0.91805464])

array([0.1305674 , 0.68165265, 0.62914205])

 

استخراج مقدار مینیمم و ماکزیمم ماتریس در راستای محورهای دیگر

به همان صورت بالاست فقط به جای عدد 0 شماره محور مورد نظر قرار می گیرد.

 

جمع المان های یک ماتریس

به صورت کلی 

3.47760015

در راستای یک محور

array([0.28378436, 1.6466191 , 1.54719669])

میانگین المان های ماتریس

به صورت کلی 

0.579600025

در راستای یک محور 

در راستای محور صفر (سطر) به این صورت می شود:

array([0.14189218, 0.82330955, 0.77359835])

انحراف معیار و واریانس

انحراف معیار

array([0.24833423, 0.37209835])

array([0.06166989, 0.13845718])

جمع تجمعی

array([[0.1305674 , 0.68165265, 0.62914205],
[0.28378436, 1.6466191 , 1.54719669]])

 

 

در صورت استفاده از مطالب این سایت لطفا به سایت ارجاع دهید

دیدگاه شما

( الزامي )

(الزامي)