فهرست سرفصل‌های NumPy
خانه (HOME) مقدمه (Intro) شروع کار (Getting Started) ساخت آرایه ها (Creating Arrays) ایندکس گذاری آرایه (Array Indexing) برش آرایه (Array Slicing) انواع داده (Data Types) کپی در برابر View (Copy vs View) شکل آرایه (Array Shape) تغییر شکل آرایه (Array Reshape) حلقه روی آرایه (Array Iterating) ترکیب آرایه ها (Array Join) تقسیم آرایه ها (Array Split) جستجو در آرایه (Array Search) مرتب سازی آرایه (Array Sort) فیلتر کردن آرایه (Array Filter) مقدمه تصادفی سازی (Random Intro) توزیع داده (Data Distribution) جابه جایی تصادفی (Random Permutation) ماژول Seaborn (Seaborn Module) توزیع نرمال (Normal Distribution) توزیع دوجمله ای (Binomial Distribution) توزیع پواسون (Poisson Distribution) توزیع یکنواخت (Uniform Distribution) توزیع لجستیک (Logistic Distribution) توزیع چندجمله ای (Multinomial Distribution) توزیع نمایی (Exponential Distribution) توزیع کای دو (Chi Square Distribution) توزیع ریلی (Rayleigh Distribution) توزیع پارتو (Pareto Distribution) توزیع زیف (Zipf Distribution) مقدمه ufunc (ufunc Intro) ساخت تابع ufunc (ufunc Create Function) حساب ساده با ufunc (ufunc Simple Arithmetic) گرد کردن اعشار با ufunc (ufunc Rounding Decimals) لگاریتم ها با ufunc (ufunc Logs) جمع ها با ufunc (ufunc Summations) حاصل ضرب ها با ufunc (ufunc Products) تفاضل ها با ufunc (ufunc Differences) کمترین مضرب مشترک با ufunc (ufunc Finding LCM) بزرگترین مقسوم علیه مشترک با ufunc (ufunc Finding GCD) توابع مثلثاتی با ufunc (ufunc Trigonometric) توابع هذلولوی با ufunc (ufunc Hyperbolic) عملیات مجموعه ای با ufunc (ufunc Set Operations) ویرایشگر (Editor) آزمون (Quiz) تمارین (Exercises) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
NumPy

NumPy — ایندکس گذاری آرایه (Array Indexing)

آخرین بروزرسانی: 1404/08/25

ایندکس گذاری آرایه (Array Indexing)

در این بخش با ایندکس گذاری آرایه در نامپای آشنا می شوی. یعنی یاد می گیری چطور با شماره گذاری خانه ها، مقدارهای داخل آرایه های معمولی، دوبعدی و سه بعدی را دقیق برداری.

دسترسی به عناصر آرایه یک بعدی

ایندکس گذاری آرایه یعنی دسترسی به عنصر با استفاده از شماره خانه. در نامپای هم مثل پایتون، شماره گذاری از صفر (0) شروع می شود. یعنی عنصر اول ایندکس 0 دارد، دومی 1، سومی 2 و همین طور جلوتر.

در مثال زیر، عنصر اول آرایه را با ایندکس 0 می گیریم.

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr[0])

مشاهده در ادیتور

حالا همان آرایه را داریم، اما این بار عنصر دوم را می گیریم. پس باید از ایندکس 1 استفاده کنیم.

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr[1])

مشاهده در ادیتور

می توانی چند عنصر را با هم استفاده کنی. مثلا عنصر سوم و چهارم را بردار و جمع کن.

import numpy as np

arr = np.array([1, 2, 3, 4])

print(arr[2] + arr[3])

مشاهده در ادیتور

ایندکس گذاری آرایه های 2 بعدی

برای آرایه های 2 بعدی، از دو عدد جداشده با کاما استفاده می کنیم. عدد اول شماره سطر است. عدد دوم شماره ستون است. می توانی آرایه را مثل یک جدول مدرسه تصور کنی؛ سطرها و ستون ها.

در مثال زیر، عنصر سطر اول و ستون دوم را برمی داریم.

import numpy as np

arr = np.array([[1, 2, 3, 4, 5],
                [6, 7, 8, 9, 10]])

print("2nd element on 1st row:", arr[0, 1])

مشاهده در ادیتور

حالا عنصر سطر دوم و ستون پنجم را می خواهیم. پس ایندکس سطر 1 و ستون 4 می شود؛ چون شمارش از صفر شروع می شود.

import numpy as np

arr = np.array([[1, 2, 3, 4, 5],
                [6, 7, 8, 9, 10]])

print("5th element on 2nd row:", arr[1, 4])

مشاهده در ادیتور

ایندکس گذاری آرایه های 3 بعدی

در آرایه 3 بعدی، از سه عدد استفاده می کنیم. عدد اول لایه بیرونی را مشخص می کند. عدد دوم آرایه داخل آن لایه است. عدد سوم هم عنصر داخل آن آرایه است.

در مثال زیر، آرایه سه بعدی داریم. می خواهیم عنصر سوم از آرایه دوم در لایه اول را بگیریم.

import numpy as np

arr = np.array([[[1, 2, 3], [4, 5, 6]],
                [[7, 8, 9], [10, 11, 12]]])

print(arr[0, 1, 2])

مشاهده در ادیتور

تجزیه مثال arr[0, 1, 2]

اول عدد 0 را نگاه کن. یعنی از بین دو لایه بیرونی، لایه اول را بردار. پس این بخش می ماند: [[1, 2, 3], [4, 5, 6]].

بعد عدد 1 را نگاه کن. یعنی از بین دو آرایه داخل این لایه، آرایه دوم را بردار. پس این بخش می ماند: [4, 5, 6].

حالا عدد 2 را نگاه کن. یعنی از بین سه عدد این آرایه، عنصر سوم را بردار. پس مقدار نهایی برابر 6 می شود.

ایندکس منفی (Negative Indexing)

در پایتون و نامپای می توانی از ایندکس منفی هم استفاده کنی. ایندکس منفی یعنی شمردن از انتهای آرایه. مثلا ایندکس -1 آخرین عنصر است.

در مثال زیر، آخرین عنصر سطر دوم را برمی داریم. پس از ایندکس سطر 1 و ستون -1 استفاده می کنیم.

import numpy as np

arr = np.array([[1, 2, 3, 4, 5],
                [6, 7, 8, 9, 10]])

print("Last element from 2nd dim:", arr[1, -1])

مشاهده در ادیتور

نکته: ایندکس منفی برای گرفتن آخرین عناصر خیلی کاربردی است. مثلا نمره آخر ترم یا آخرین پیام را راحت برمی داری.

قدم بعد از ایندکس گذاری آرایه در نامپای

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

برای مرور ساخت آرایه ها می توانی دوباره صفحه ساخت آرایه ها در نامپای را ببینی. سپس برای ادامه مسیر، به صفحه برش آرایه ها در نامپای برو.

اگر خواستی همین مبحث را به انگلیسی بخوانی، صفحه Array Indexing در W3Schools منبع اصلی است. برای توضیحات عمیق تر، مستندات رسمی NumPy Doc همیشه در دسترس است.

جمع بندی سریع

  • ایندکس گذاری آرایه در نامپای از صفر شروع می شود.
  • در آرایه های 2 بعدی، فرم arr[row, col] استفاده می شود.
  • در آرایه های 3 بعدی، سه عدد برای سه سطح به کار می رود.
  • ویژگی مهم ایندکس منفی، دسترسی راحت از انتهای آرایه است.
  • بعد از ایندکس گذاری، نوبت تمرین برش یا Slicing است.