بخش قبلی: معرفی کتابخانه نامپای
کتابخانه numpy برای کار با آرایهها توسعه داده شده است. آبجکت یا شیء نمایندهی آرایه در نامپای، ndarray نام دارد. با استفاده از تابع ()array میتوان یک شیء ndarray ساخت. به عنوان نمونه، به مثال زیر توجه کنید:
1 2 3 4 5 6 7 |
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr) print(type(arr)) |
توجه: تابع ()type یکی از توابع درونی پایتون است که یک شیء را به عنوان ورودی دریافت میکند و نوع آن شیء را برمیگرداند. به عنوان مثال، در تکه کد بالا و در خط آخر، numpy.ndarray به عنوان نوع آبجکت arr برگردانده میشود.
تابع array به عنوان ورودی میتواند یک تاپل (tuple)، لیست (list) یا هر آبجکت آرایهمانند دیگری دریافت کند. ورودی تابع هر چه باشد، به یک آبجکت ndarray تبدیل میشود. در مثال زیر، یک تاپل را به عنوان ورودی تابع ()array معرفی کردهایم:
1 2 3 4 5 |
import numpy as np arr = np.array((1, 2, 3, 4, 5)) print(arr) |
بعد در آرایهها و numpy
هر بعد در آرایه، یک لایهی عمق آرایه محسوب میشود. آرایههای تودرتو، آرایههای هستند که درایههای آنها، خود آرایه هستند.
آرایه صفر بعدی در numpy
هر درایه در یک آرایه، یک آرایه صفر بعدی یا یک عدد اسکالر به حساب میآید. تکه کد زیر، یک آرایه صفر بعدی میسازد:
1 2 3 4 5 |
import numpy as np arr = np.array(42) print(arr) |
آرایه یک بعدی در numpy
آرایهای که درایههای آن، آرایه صفر بعدی هستند، آرایه یک بعدی نام دارد. آرایه یک بعدی، پراستفادهترین نوع آرایه است. تکه کد زیر، یک لیست را به آرایه یک بعدی تبدیل میکند:
1 2 3 4 5 |
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr) |
آرایه دو بعدی در numpy
آرایهای که درایههای آن، آرایه یک بعدی هستند، آرایه دو بعدی نام دارد. آرایههای دو بعدی معمولا به منظور نشان دادن ماتریسها استفاده میشود.
توجه: نامپای یک زیرماژول کامل برای کار با ماتریسها به نام numpy.mat دارد.
تکه کد زیر نمونهای برای ساخت آرایه دو بعدی با استفاده از numpy است:
1 2 3 4 5 |
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr) |
آرایه سه بعدی در numpy
آرایهای که درایههای آن، آرایه دو بعدی هستند، آرایه سه بعدی نام دارد. آرایه سه بعدی معمولا برای نشان دادن تنسور مرتبه سه، استفاده میشود. با استفاده از تکه کد زیر میتوانید یک آرایه سه بعدی ایجاد کنید:
1 2 3 4 5 |
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]]) print(arr) |
چگونه بعد آرایه را با استفاده از numpy بفهمیم؟
آرایههای ساختهشده به وسیلهی numpy، اتریبیوتی به نام ndim دارند که یک عدد صحیح (int) است و بیانگر بعد آرایه میباشد. تکه کد زیر، بعد چهار آرایهی مختلف را چاپ میکند:
1 2 3 4 5 6 7 8 9 10 11 |
import numpy as np a = np.array(42) b = np.array([1, 2, 3, 4, 5]) 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) |
آرایههای با ابعاد بالاتر
یک آرایه میتواند هر بعدی داشته باشد و محدودیتی در این مورد وجود ندارد. میتوانید بعد آرایه را در هنگام تعریف آن و به عنوان یک آرگومان تابع ()array تعریف کنید. به مثال زیر توجه نمایید:
1 2 3 4 5 6 |
import numpy as np arr = np.array([1, 2, 3, 4], ndmin=5) print(arr) print('number of dimensions :', arr.ndim) |
مرسی ازتون و آموزش های ساده و روان تون ndmin=5 یعنی چی یعنی به پنج بعد تبدیلش میکنه ؟
داکیومنت آخر لاین ۳ و ۶. فرق ndmin و ndim. چی هستش اشتباه تایپیه ؟؟
سلام دوستت عزیز، ممنون از توجه شما
خیر اشتباه تایپی نیست.
موقعی که میخواین یک ndarray بسازین، مثل چیزی که در لاین ۳ هست، با استفاده از آرگومان ndmin باید بعد آرایه مد نظرتون رو مشخص کنید.
ولی اگر یک ndarray دارین و میخواین بعدش رو متوجه بشین، با استفاده از اتریبیوت ndim میتونین این کار رو انجام بدین (مثل چیزی که در لاین ۶ هست)
مرسی از پاسخگویی سریع و کاملتون 🌹💚
موفق باشید