NumPy Array Indexing

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

منظور از ایندکس دهی آرایه‌ها همان نحوه دسترسی به عناصر یک آرایه است.

جهت دسترسی به یک عنصر از آرایه کافی است که به شماره ایندکس آن ارجاع دهیم.

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

در کد زیر عناصر سوم و چهارم را فراخوانده و با هم دیگر جمع کرده‌ایم.


import numpy as np

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

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

خروجی:

دسترسی به آرایه‌های دو بعدی

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

برای سادگی می‌توانید یک آرایه دوبعدی را مانند یک جدول که دارای سطر وستون است در نظر بگیرید که در آن سطرها نماینده بعد و ایندکس‌ نماینده ستون است.

در کد زیر به عنصر واقع در سطر دوم و ستون پنجم دسترسی پیدا کرده‌ایم.


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

خروجی:

دسترسی به آرایه‌های سه بعدی

جهت دسترسی به عناصر آرایه‌‌های سه بعدی می‌توانیم از اعداد صحیحی که نماینده ابعاد و ایندکس عنصر مورد نظر هستند، استفاده کنیم.

برای نمونه در کد زیر عنصر سوم از دومین آرایه اولین آرایه را فراخوانی کرده‌ایم.


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] برابر 6 شده، که دلیل آن در زیر توضیح داده شده است.

اولین عدد نماینده بعد اول است که شامل دو آرایه زیر می‌باشد:

[[1, 2, 3], [4, 5, 6]]

و

[[7, 8, 9], [10, 11, 12]]

از آنجا که 0 را انتخاب کرده‌ایم، در نتیجه فقط آرایه اول باقی می‌ماند.

[[1, 2, 3], [4, 5, 6]]

عدد دوم نماینده بعد دوم است که آن هم دارای دو آرایه زیر است:

[1, 2, 3]

و

[4, 5, 6]

از آنجایی که 1 را انتخاب کرده‌ایم پس تنها آرایه دوم باقی می‌ماند.

[4, 5, 6]

عدد سوم نماینده بعد سوم است که شامل سه مقدار است:

4
5
6

و از آنجا که 2 را انتخاب کرده‌ایم بنابراین نهایتاً به 6 می‌رسیم.

ایندکس دهی منفی

جهت دسترسی به عناصر از آخر می‌توان از ایندکس دهی منفی استفاده کرد.

در کد زیر آخرین عنصر از بعد دوم را پرینت می‌کنیم.


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

خروجی: