مشخصات مقاله
-
0.0
-
2195
-
0
-
0
آرایه های چند بعدی در numpy
«Ndarray» در واقع شیء آرایه چند بعدی است که در کتابخانه NumPy تعریف شده و مجموعهای از عناصر مشابه از یک نوع داده ای را ذخیره میکند. به عبارت دیگر، میتوانیم «ndarray» را به عنوان مجموعهای از اشیاء نوع داده (dtype) تعریف کنیم.
اشیاء «ndarray» با استفاده از شمارهگذاری مبتنی بر صفر به آن دسترسی دارند. هر عنصر از شیء آرایه حافظهای با اندازه یکسان دارد.
ایجاد یک شیء «ndarray»
شیء «ndarray» میتواند با استفاده از تابع array ماژول NumPy ایجاد شود. برای این منظور، باید کتابخانه NumPy را import کنیم.
>>> a = numpy.array
تصویر زیر را در نظر بگیرید
همچنین میتوانیم یک مجموعه اشیا را به تابع آرایه (array) منتقل کنیم تا آرایه چند بعدی معادل ایجاد کنیم. دستور زیر اینگونه است:
>>> numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
پارامترها در جدول زیر توضیح داده شدهاند.
برای ایجاد یک آرایه با استفاده از یک لیست، از دستور زیر استفاده کنید:
>>> a = numpy.array([1, 2, 3])
برای ایجاد یک شیء آرایه چند بعدی، از دستور زیر استفاده کنید:
>>> a = numpy.array([[1, 2, 3], [4, 5, 6]])
برای تغییر نوع داده عناصر آرایه، نام نوع داده را همراه با مجموعه ارائه دهید.
>>> a = numpy.array([1, 3, 5, 7], complex)
یافتن ابعاد آرایه
تابع ndim میتواند برای یافتن ابعاد آرایه استفاده شود.
>>> import numpy as np >>> arr = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [9, 10, 11, 23]]) >>> print(arr.ndim)
یافتن اندازه هر عنصر آرایه
تابع itemsize برای دریافت اندازه هر مورد آرایه استفاده میشود. این تابع تعداد بایتهایی که توسط هر عنصر آرایه گرفته میشود را برمیگرداند
مثال زیر را در نظر بگیرید :
#finding the size of each item in the array
import numpy as np
a = np.array([[1,2,3]])
print("Each item contains",a.itemsize,"bytes")
خروجی
Each item is of the type int64
یافتن شکل و اندازه آرایه
برای گرفتن شکل (shape) و اندازه (size) آرایه، از توابع size و shape مرتبط با آرایه NumPy استفاده میشود.
مثال زیر را در نظر بگیرید :
import numpy as np
a = np.array([[1,2,3,4,5,6,7]])
print("Array Size:",a.size)
print("Shape:",a.shape)
خروجی
Array Size: 7 Shape: (1, 7)
تغییر شکل اشیاء آرایه
زمانی که از شکل آرایه صحبت میشود، منظور تعداد سطرها و ستونهای یک آرایه چند بعدی است. با این حال، ماژول NumPy به ما امکان میدهد آرایه را با تغییر تعداد سطرها و ستونها آرایه چند بعدی را تغییر شکل دهیم. تابع reshape() مرتبط با شیء ndarray برای تغییر شکل آرایه استفاده میشود. این تابع دو پارامتر را قبول میکند که تعداد سطرها و ستونهای شکل جدید آرایه را نشان میدهند.
بیایید آرایهای که در تصویر زیر آمده را تغییر شکل دهیم:
import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
print("printing the original array..")
print(a)
a=a.reshape(2,3)
print("printing the reshaped array..")
print(a)
خروجی
printing the original array.. [[1 2] [3 4] [5 6]] printing the reshaped array.. [[1 2 3] [4 5 6]]
برش در آرایه
برش (Slicing) در آرایه NumPy، روشی برای استخراج یک محدوده از عناصر از یک آرایه است. برش در آرایه به همان روشی انجام میشود که در لیستهای Python انجام میشود.
مثال زیر را در نظر بگیرید :import numpy as np a = np.array([[1,2],[3,4],[5,6]]) print(a[0,1]) print(a[2,0])خروجی
2 5
برنامهی بالا عنصر دوم از اندیس صفر و عنصر صفرم از اندیس دوم آرایه را چاپ میکند.
تابع linspace
تابع linspace() مقادیر به صورت یکسان فاصله داشته بر روی بازه داده شده را برمیگرداند. در مثال زیر، 10 مقدار به صورت یکسان فاصله داشته بر روی بازه داده شده 5 تا 15 برگردانده میشوند.
مثالimport numpy as np a=np.linspace(5,15,10) print(a)خروجی
[ 5. 6.11111111 7.22222222 8.33333333 9.44444444 10.55555556 11.66666667 12.77777778 13.88888889 15. ]
یافتن بیشینه، کمینه و مجموع عناصر آرایه
ماژول NumPy توابع max()، min() و sum() را ارائه میدهد که به ترتیب برای یافتن بیشینه، کمینه و مجموع عناصر آرایه استفاده میشوند.
مثال زیر را در نظر بگیرید :
import numpy as np
a = np.array([1,2,3,10,15,4])
print("The array:",a)
print("The maximum element:",a.max())
print("The minimum element:",a.min())
print("The sum of the elements:",a.sum())
خروجی
The array: [ 1 2 3 10 15 4] The maximum element: 15 The minimum element: 1 The sum of the elements: 35
محورهای آرایه در NumPy
یک آرایه چند بعدی در NumPy توسط محورها نمایان میشود، به این صورت که محور-0 ستونها را نمایان میکند و محور-1 سطرها را نمایان میکند. میتوانیم محور را مشخص کنیم تا محاسبات مربوط به سطر یا ستون مانند جمع عناصر سطر یا ستون انجام دهیم.
برای محاسبه بیشینهی عنصر در هر ستون، کمینهی عنصر در هر سطر و جمع تمام عناصر سطرها، مثال زیر را در نظر بگیرید.
import numpy as np
a = np.array([[1,2,30],[10,15,4]])
print("The array:",a)
print("The maximum elements of columns:",a.max(axis = 0))
print("The minimum element of rows",a.min(axis = 1))
print("The sum of all rows",a.sum(axis = 1))
خروجی
The array: [[1 2 30]
[10 15 4]]
The maximum elements of columns: [10 15 30]
The minimum element of rows [1 4]
The sum of all rows [33 29]
برای محاسبه جذر مربعی (square root) و انحراف معیار (standard deviation)، از توابع sqrt() و std() مرتبط با آرایه NumPy به ترتیب برای محاسبه جذر مربعی و انحراف معیار عناصر آرایه استفاده میشود. انحراف معیار به معنای این است که هر عنصر از مقدار میانگین آرایه NumPy چقدر متغیر است.
مثال زیر را در نظر بگیرید:import numpy as np a = np.array([[1,2,30],[10,15,4]]) print(np.sqrt(a)) print(np.std(a))
خروجی[[1. 1.41421356 5.47722558] [3.16227766 3.87298335 2. ]] 10.044346115546242
عملیات حسابی بر روی آرایه
ماژول NumPy به ما امکان میدهد که عملیات حسابی را مستقیماً بر روی آرایههای چند بعدی انجام دهیم. در مثال زیر، عملیات حسابی بر روی دو آرایه چند بعدی a و b انجام میشود
import numpy as np
a = np.array([[1,2,30],[10,15,4]])
b = np.array([[1,2,3],[12, 19, 29]])
print("Sum of array a and b\n",a+b)
print("Product of array a and b\n",a*b)
print("Division of array a and b\n",a/b)
اتصال آرایهها
ماژول NumPy به ما امکان اتصال عمودی و افقی آرایههای چند بعدی را میدهد مثال زیر را در نظر بگیرید.
import numpy as np
a = np.array([[1,2,30],[10,15,4]])
b = np.array([[1,2,3],[12, 19, 29]])
print("Arrays vertically concatenated\n",np.vstack((a,b)));
print("Arrays horizontally concatenated\n",np.hstack((a,b)))
خروجی
Arrays vertically concatenated [[ 1 2 30] [10 15 4] [ 1 2 3] [12 19 29]] Arrays horizontally concatenated [[ 1 2 30 1 2 3] [10 15 4 12 19 29]]