ایجاد آرایه ها با ماژول NumPy در پایتون (Python) -بخش اول

ایجاد آرایه ها با ماژول NumPy در پایتون (Python) - بخش اول

زمان مطالعه

5 دقیقه

تعداد بازدید

143

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


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

ایجاد آرایه ها با ماژول NumPy در پایتون (Python) -بخش اول

ایجاد آرایه ها با ماژول NumPy در پایتون (Python) - بخش اول

زمان مطالعه

5 دقیقه

تعداد بازدید

143

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

ماژول NumPy همانطور که در مقالات قبل هم گفتیم، برای کار با آرایه ها در پایتون استفاده می شود.شی آرایه در ماژول NumPy در پایتون ndarray نام دارد که در ادامه به بررسی آن می پردازیم.

ما می توانیم با استفاده از تابع ()array یک NumPy ndarray object در پایتون ایجاد کنیم.

مثال: در زیر یک NumPy ndarray object با استفاده از تابع ()array ایجاد کرده ایم.

 

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))

 

ایجاد آرایه (Array) در ماژول NumPy در پایتون (Python)

 

متد type() : یک تابع داخلی پایتون (Python) است که نوع شیئی که به آن ارسال شده است را به ما نشان می دهد. مانند مثال بالا که به ما نشان می دهد arr شیئی از نوعnumpy.ndarray  است.

در کل 6 مکانیسم برای ایجاد آرایه ها وجود دارد:

  • 1-تبدیل از سایر ساختارهای پایتون (به عنوان مثال لیست ها، چندتایی ها و …)
  • 2-توابع داخلی ایجاد آرایه NumPy (مانند arrange, ones, zeros و غیره)  
  • 3-تکرار کردن، پیوستن، یا تغییر دادن آرایه های موجود
  • 4-خواندن آرایه ها از دیسک، از فرمت های استاندارد یا فرمت های سفارشی
  • 5-ایجاد آرایه ها از بایت های خام، با استفاده از رشته ها یا بافرها
  • 6-استفاده از توابع کتابخانه ویژه (مانند random)

 

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

تبدیل از سایر ساختارهای پایتون

برای ایجاد ndarray می توانیم یک لیست (List)، یک چندتایی (Tuple)  استفاده کنیم. لیست ها و چند تایی ها به ترتیب با استفاده از […] و (…) تعریف می شوند. لیست ها و چندتایی ها می توانند نوع یک ndarray را مشخص کنند:

به طور کلی، هر شی آرایه ای در ماژول NumPy در پایتون (Python) ndarray نامیده می شود.

مثال: در زیر از یک چندتایی (Tuple) برای ایجاد یک آرایه NumPy استفاده کرده ایم.

 

import numpy as np
arr = np.array((1, 2, 3, 4, 5))
print(arr)

 

روش ایجاد آرایه در NumPy در پایتون (Python)

 

ویژگی dtype

وقتی از numpy.array برای تعریف یک آرایه جدید استفاده می کنید، باید نوع عناصر موجود در آرایه را هم در نظر بگیرید، که می تواند با dtype به صراحت مشخص شود. این ویژگی به شما کنترل بیشتری بر ساختارهای داده ای اساسی و نحوه مدیریت عناصر در توابع C++/C می دهد. اگر در تعریف نوع عبارت dtype دقت نکنید، می تواند برای شما سرریز ناخواسته به وجود بیاورد. به مثال زیر دقت کنید:

 

import numpy as np
arr = np.array([1, 2, 3, 4, 5],dtype=np.int8)
print(arr)

 

ویژگی dtype در ماژول NumPy در پایتون (Python)

 

یک عدد صحیح 8 بیتی (int8) دارای محدوده عددی از 128- تا 127 است. انتصاب نوع آرایه ای int8 به اعداد صحیح خارج از محدوده عددی آن منجر به ایجاد سرریز می شود. این ویژگی اغلب می تواند اشتباه فهمیده شود. اگر محاسبات را بدون تطابق dtype انجام دهید، موجب دریافت نتایج ناخواسته می شوید، مانند مثال زیر.

 

Import numpy as np
a = np.array([2, 3, 4], dtype = np.uint32)
b = np.array([5, 6, 7], dtype = np.uint32)
c_unsigned32 = a - b
print('unsigned c:', c_unsigned32, c_unsigned32.dtype)
c_signed32 = a - b.astype(np.int32)
print('signed c:', c_signed32, c_signed32.dtype)

 

ویژگی dtype در ماژول NumPy در پایتون (Python)

 

توجه داشته باشید وقتی با دو نوع آرایه یکسان عملیاتی را انجام می دهید، آرایه به دست آمده هم از همان نوع خواهد بود. هنگامی که عملیات را با dtype های مختلف انجام دهید، NumPy نوع جدیدی را اختصاص خواهد داد که همه عناصر آرایه دخیل در محاسبه را شامل می شود. در مثال بالا uint32 و int32 را به صورت int64 نشان داده است.

رفتار پیش فرض ماژول NumPy برای ایجاد آرایه، برای نوع های اعداد صحیح با علامت 64 بیتی یا اعداد نقطه شناور با دقت دو رقم اعشار، به ترتیب int64 و float است. اگر نیاز دارید که آرایه های شما نوع خاصی باشند، باید هنگام ایجاد آرایه، نوع آن را با مقدار دهی dtype مشخص کنید.

ابعاد در آرایه ها

یک بعد در آرایه ها، یک مرحله از عمق یک آرایه (آرایه های تو در تو)  است.

  • لیستی که فقط یک مقدار دارد، یک آرایه صفر بعدی ایجاد می کند  (0-D)
  • لیستی از اعداد یک آرایه یک بعدی ایجاد می کنند  (1-D)
  • لیستی از لیست ها یک آرایه دو بعدی ایجاد می کنند (2-D)
  • لیست های تو در تو آرایه هایی با ابعاد بالاتر ایجاد می کنند.

آرایه های تو در تو : آرایه هایی هستند که درون خودشان دارای آرایه به عنوان عنصر هستند.

آرایه های 0 بعدی (0-D)

آرایه های 0-D یا Scalars، عناصر یک آرایه هستند، یعنی هر مقدار در یک آرایه، یک آرایه 0-D است.

مثال: در زیر یک آرایه 0-D با مقدار 42 ایجاد کرده ایم.

 

import numpy as np
arr = np.array(42)
print(arr)

 

آرایه های 0 بعدی (0-D) در ماژول NumPy در پایتون (Python)

 

آرایه های تک بعدی (1-D)

آرایه ای که دارای آرایه های 0-D به عنوان عناصر خود هستند، آرایه های 1-D یا تک بعدی نامیده می شوند.

آرایه های تک بعدی، رایج ترین و اساسی ترین آرایه ها هستند.

مثال: در زیر ما یک آرایه تک بعدی که حاوی مقادیر 1 تا 5 است را ایجاد کرده ایم.

 

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)

 

آرایه های تک بعدی (1-D) در ماژول NumPy در پایتون (Python)

 

آرایه های دو بعدی (2-D)

آرایه ای که حاوی آرایه های تک بعدی به عنوان عناصر خود باشند، آرایه دو بعدی یا 2-D نامیده می شوند.

این نوع آرایه ها اغلب برای نشان دادن ماتریس ها و یا تانسور های درجه 2 استفاده می شوند.

نکته: «تانسور» (Tensor)، نقطه‌ای از فضا است که توسط یک یا چند شاخص که بیانگر مرتبه آن است، توصیف می‌شود. تانسور ها در یادگیری عمیق و علم داده بسیار کاربردی هستند.

برای درک بیشتر تفاوت Scalar و آرایه افقی/عمودی و ماتریس و تنسور ها تصویری را برای شما آماده کرده ام.

 

مفهوم تنسور

 

نکته: NumPy دارای یک زیر ماژول کامل برای عملیات ماتریسی به نام numpy.mat است.

مثال: در زیر یک آرایه دو بعدی که شامل دو آرایه تک بعدی با مقادیر 1,2,3 و 4,5,6 ایجاد کرده ایم.

 

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)

 

آرایه های دو بعدی (2-D) در ماژول NumPy در پایتون (Python)

 

آرایه های سه بعدی (3-D)

آرایه ای که دارای آرایه های دو بعدی (ماتریس) ، به عنوان عناصر خود است را آرایه های سه بعدی یا 3-D می نامند.

این آرایه ها برای نشان دادن تانسور های درجه 3 استفاده می شوند.

مثال: در زیر یک آرایه سه بعدی که شامل دو آرایه دو بعدی با مقادیر 1,2,3 و 4,5,6 است، ایجاد کرده ایم.

 

import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(arr)

 

آرایه های سه بعدی (3-D) در ماژول NumPy در پایتون (Python)

 

بررسی ابعاد یک آرایه

آرایه های ماژول NumPy یک ویژگی با نام ndim را ارائه می دهند که یک عدد که یک عدد صحیح را بر می گرداند و به ما می گوید که آرایه مورد نظر دارای چند بعد است.

مثال: در زیر بررسی کرده ایم که آرایه های موجود دارای چند بعد هستند.

 

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)

 

بررسی ابعاد یک آرایه در ماژول NumPy در پایتون (Python)

 

آرایه هایی با ابعاد بالاتر

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

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

مثال: در زیر آرایه ای 5 بعدی با ویژگی ndmin ایجاد کرده ایم و بررسی کرده ایم که آیا دارای 5 بعد است یا خیر.

 

import numpy as np
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)
print('number of dimensions :', arr.ndim)

 

تعیین ابعاد آرایه با ویژگی ndmin در ماژول NumPy در پایتون (Python)

 

در این آرایه درونی ترین بعد (پنجمین بعد) دارای 4 عنصر است، چهارمین بعد دارای یک عنصر است که بردار است، سومین بعد دارای یک عنصر است که ماتریس بردار است، دومین بعد دارای یک عنصر است که یک آرایه 3 بعدی است و اولین بعد دارای یک عنصر است که یک آرایه 4 بعدی است.

در این قسمت ما اولین مکانیسم را بررسی کردیم، ولی اگر همه 6 مکانیسم را بررسی کنیم، مقاله بسیار طولانی خواهد شد، به همین دلیل ادامه آن را در مقاله بعدی با عنوان ایجاد آرایه ها با ماژول NumPy در پایتون (Python) – بخش دوم بررسی خواهیم کرد.

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


پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی