در حال بارگزاری

ساخت آرایه (array) در numpy پایتون (Python)

شما اینجا هستید:
ساخت آرایه (array) در numpy پایتون (Python)

ساخت آرایه (array) در numpy پایتون (Python)

یکی از موارد خیلی مهم در numpy ساخت آرایه (array) در پایتون (python) است! که در این آموزش نحوه ساخت یک آرایه از لیست، تاپل و … رو آموزش میدیم! و فرق آرایه با لیست و تاپل و … رو به طور کامل بیان می‌کنیم!

ایجاد آرایه (array) از یک لیست (list)

قطعه کد زیر را در نظر بگیرید!:

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 معرفی میکنه! که یعنی آرایه است!

ایجاد آرایه (array) از یک تاپل (tuple)

اگر نمی‌دونید تاپل چیست، به آموزش زیر مراجعه کنید!

تاپل در پایتون

خب! حالا این بار قطعه کد زیر رو در نظر بگیرید!

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']]

چند مثال دیگه از ساخت دستی array !

چند تا مثال دیگه بزنیم که دیگه کامل مبحث جا بیفته!

مثال: فرض کنید می‌خوایم آرایه 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"]
])

یک تفاوت مهم بین آرایه‌ی numpy و data structure های پایتون (Python)

اول اینکه، به همون 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 است دقت کنید!]

آموزش‌های پیشنهادی!

جلسه بعد: تابع arange در numpy

آموزش کامل و رایگان پایتون به زبان فارسی

مطالب مرتبط

آموزش محاسبه معکوس ماتریس (inverse) در پایتون در این آموزش با مثال و تمرین نحوه محاسبه معکوس ماتریس...

آموزش تابع map در پایتون (python) + ترکیب با تابع lambda در این آموزش تابع map در پایتون رو...

جزئیات نوشته
تعداد دیدگاه 6
تعداد بازدید 17.0K
تاریخ انتشار 17/07/2019
تاریخ بروزرسانی 17/07/2019
نویسنده گروه آموزشی کولاک
برای ارسال دیدگاه ابتداواردشوید