یکی از موارد خیلی مهم در numpy ساخت آرایه (array) در پایتون (python) است! که در این آموزش نحوه ساخت یک آرایه از لیست، تاپل و … رو آموزش میدیم! و فرق آرایه با لیست و تاپل و … رو به طور کامل بیان میکنیم!
قطعه کد زیر را در نظر بگیرید!:
import numpy as np a=[-2,5,7,14] b=np.array(a) print(b)
در خط اول این کد، پکیج numpy رو به عنوان np وارد فضای کاری خودمون در پایتون (Python) میکنیم! در واقع چون حوصله نداریم، هردفعه اسمِ طولانی numpy رو تایپ کنیم! پس میگیم، numpy رو با اسم مستعار np وارد کن! که از این به بعد هر وقت خواستم بگم numpy، خیلی زحمت نکشم و فقط بگم np!
در خط دوم، یک لیست تعریف کردم!
در خط سوم، اولاً حواسمون هست که np همووون numpy است! (در توضیح خط یک، یه عالمه در موردش توضیح دادیم!)
و حالا میایم از پکیج numpy از array استفاده میکنیم (یعنی استفاده از np.array) و لیست a رو به یک آرایه تبدیل میکنیم! و نتیجه رو در متغیری به اسم b میریزیم! و توجه داشته باشید که الان b یک آرایه است و نه یک لیست!
در خط آخر هم میایم و b رو print میکنیم که خروجی زیر رو دریافت میکنیم!
[-2 5 7 14]
و برای اطمینان اگر قطعه کد زیر رو بنویسیم تا نوع b رو بهموون نشون بده:!
print(type(b))
و خروجی این میشه که نوع class متغیر b رو به ما numpy.ndarray معرفی میکنه! که یعنی آرایه است!
اگر نمیدونید تاپل چیست، به آموزش زیر مراجعه کنید!
خب! حالا این بار قطعه کد زیر رو در نظر بگیرید!
import numpy as np a=(-2.1,3) b=np.array(a) print(b)
خط اول که مشابه قسمت قبلی است که در بخش قبلی توضیح دادیم!
خط دوم، یک tuple درست کردیم! توجه کنید که عدد منفیِ 2.1 یک عدد اعشاری است! و عدد 3 یک عدد صحیح! و بعد که خروجی رو خواستیم چاپ کنیم، به نحوه خروجی دقت کنید!
خط سوم هم که مشابه قبل، اومدیم، a (که یک تاپل بود) رو به یک آرایه (array) تبدیل کردیم و این رو ریختیم توووی متغیری به اسم b!
در خط آخر هم که داریم b رو print میکنیم!
در نهایت خروجی به صورت زیر خواهد بود!:
[-2.1 3. ]
اگر دقت کنید، میبینید که عدد 3 که عددصحیح بود رو به عدد اعشاری تبدیل کرده! شاید بپرسید چرا؟! جوابش در نکته زیر خلاصه شده!
نکته: در numpy، هر مولفه داخل یک آرایه (array) باید نوع مشابه با بقیه داشته باشد!
خب حالا به نظر شما میشه یک عدد اعشاری رو بدون از دست دادن چیزی! به یک عدد صحیح تبدیل کنیم! (واضحه که نه!)
ولی خیلی راحت میشه یک عدد صحیح رو به یک عدد اعشاری تبدیل کرد و هیچی رو هم از دست نداد!
به قطعه کد زیر نگاه کنید! و بدون اینکه برید توووی پایتون (python) این رو کپی کنید و run بگیرید! بگید به نظرتون خروجیش چی میشه؟! و چرا؟!
import numpy as np a=[-7,14.5,2+5j] b=np.array(a) print(b) print(type(b))
تنها نکتهی این تمرین اینه که همهی اعداد داخل لیست a به اعداد مختلط ارتفا پیدا میکنن! چرا؟! چون قرار شد همهی اعضای آرایه از یک نوع باشن! خوب حالا به نظرتون میشه یک عدد مختلط رو به یک عدد صحیح تبدیل کرد؟! واضحه که نه!! (ولی میشه یک عدد صحیح رو به عدد مختلط تبدیل کرد! کافیه بخش موهومیش رو صفر در نظر بگیریم! همین!)
یا به زبووون دیگه:!
اعداد صحیح زیر مجموعه اعداد اعشاری هستن! و باز این دوتا زیرمجموعه اعداد مختلط هستن!
حالا فرض کنید نمیخوایم از list یا tuple بیایم یک آرایه درست کنیم! و میخوایم خودمون دستی بیایم آرایه درست کنیم! برای این موضوع، مثال زیر رو در نظر بگیرید!
import numpy as np a=np.array([ [1,2], ["A","B"] ]) print(a)
خط اول که مشابه قبلی هاست!
خط دوم اومدیم شروع میکنیم به تعریف یک آرایه (array) با نام a ! اون np.array هم یعنی از پکیج numpy (اون np اسم مستعار numpy بود دیگه!) از تابع آرایه (array) میخوایم استفاده کنیم!
اون پرانتز هایی که در خط دوم باز شده و در خط 5 بسته شده که مربوط به خود تابع array است! پس اونا که هیچی!
یادآوری: (به [] میگن براکت!)
براکت اول که در خط دوم (و در ادامه همون پرانتز) باز شده، و در خط 5 بسته شده، شروع ماجراست!
در خط سوم سطر اولش رو تعریف کردیم و در خط چهارم، سطر دوم آرایه خودمون رو تعریف کردیم!
همین!
که خروجی میشه:!
[['1' '2'] ['A' 'B']]
چند تا مثال دیگه بزنیم که دیگه کامل مبحث جا بیفته!
مثال: فرض کنید میخوایم آرایه 2 در 3 بسازیم! با مقادیر 1 و 2 و … و 6! پس داریم!
import numpy as np a=np.array([ [1,2,3], [4,5,6] ]) print(a)
دیگه توضیح که نمیخواد! چون دقیقاً مشابه قبلی هاست! در ضمن از کدهای بعدی، خط اولش رو هم نمینویسم چون دیگه تکراری است! و یک پکیج رو که لازم نیست صدبار import کنیم که!!!
مثال: میخوایم آرایه 1 در 3 بسازیم با اعداد 1و2و3 !
a=np.array([ [1], [2], [3] ])
مثال: آرایه 3 در 1 با اعداد 1و2و3 بسازید!
a=np.array([ [1,2,3] ])
مثال: آرایه 4 در 2 با حروف الفبا انگلیسی بسازید!
a=np.array([ ["A","B"], ["C","D"], ["E","F"], ["G","H"] ])
اول اینکه، به همون list و tuple و … در پایتون میگن Data Structure!
و آرایه در numpy هم که واضحه به نظرم! چون تمام این آموزش داشتیم در موردش صحبت میکردیم!
برای نشووون دادن این تفاوت مهم (البته واضحه که تفاوتهای دیگهای هم داره!) به قطعه کد زیر و خروجیش دقت کنید، تا توضیح بدیم!
import numpy as np a=[1,4,7] b=np.array(a) print(b*3) print(a*3)
خروجی:
[ 3 12 21] [1, 4, 7, 1, 4, 7, 1, 4, 7]
اگر دقت کنید، b یک numpy array است! و a یک list!
وقتی یک لیست (و در حالت کلی یک data structure پایتون رو در عددی ضرب میکنیم، به همون تعداد تکرار میشه!) [به خط دوم خروجی که درواقع 3 برابر a است دقت کنید!]
اما وقتی یک numpy array رو در عددی ضرب میکنیم، تک تک مولفههاش در اون عدد ضرب میشن! [به خط اول خروجی که درواقع 3 برابر b است دقت کنید!]
تعداد دیدگاه | 6 |
تعداد بازدید | 18.1K |
تاریخ انتشار | 17/07/2019 |
تاریخ بروزرسانی | 17/07/2019 |
نویسنده | گروه آموزشی کولاک |