برش ارایه ها در Numpy

برش ارایه ها یا (Array slicing) برای جدا کردن بخشی از اطلاعات و اعضای ارایه هست.

این متد از ما سه ورودی عددی میگیرد اولی ایندکس آغازین که کمترین مقدار آن صفر است  دومی ایندکس پایانی و سوم که ورود آن اجباری نیست step یا تعداد گام های جلو رفتن است .

سه نکته را برای برش ارایه ها باید در نظر بگیریم :

  • اگر ایندکس اغازین را وارد نکنید بصورت خودکار ایندکس صفر شروع میکند.
  • اگر ایندکس پایانی را وارد نکنید بصورت خودکار تا آخر میرود.
  • اگر تعداد گام را مشخص نکنید بصورت خودکار یک را در نظر میگیرد.

 

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

 

نکته: همیشه نتیجه برش یک آرایه شامل ایندکس پایانی وارد شده نمیشود.

print(arr[4:]) 
print(arr[:4]) 

برش بازه های منفیی ارایه ها در Numy

ما از علامت منفی (-) استفاده میکنیم تا خانه ایندکسی مورد نظر از آخر حساب شود.

در مثال زیر ما از آخر ایندکس 1 و ایندکس 3 را برای برش ارایه مشخص کردیم:

print(arr[-3:-1])

Numpy گام ها در برش ارایه در

ما از گام (step) برای میزان پیمایش در محدوده انتخابی برای برش در ارایه استفاده میکنیم برای مثال اگر step برابر دو باشد بصورت یکی در میان المنت های درون ارایه را انتخاب میکند و چاپ میکند.

در مثال زیر ما از ایندکس 1 تا 5 بصورت یکی در میان انتخاب و چاپ میکند:

print(arr[1:5:2])

همچنین اگر ایندکس آغازین و پایانی را وارد نکنیم و فقظ مقدار گام ها را مشخص کنیم کل آرایه در نظر گرفته میشود و کد اجرا میشود.

در مثال زیر بخاطر وارد نکردن ایندکس آغازین و پایانی کل ارایه در نظر گرفته میشود و با تعداد گام هایی که مشخص شده ارایه را طی و ایندکس های مورد نظر را برش و چاپ میکند:

print(arr[::2])

برش ارایه های دو بعدی در Numpy

همانظور که میدانید آرایه های دوبعدی به ارایه هایی گفته میشوند که خود دارای دو آرایه هستند پس برای برش باید مشخص کنیم ایندکس های خواسته شده برای کدام یک از آرایه ها است.

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

در مثال زیرما از ردیف یک یا همون ارایه دوم ستون ستون یا ایندکس 1 تا 4 را میخواهیم برش بزنیم:

print(arr[1, 1:4])

 

نکته: ایندکس ارایه های درون ارایه دو بعدی همانند ایندکس های معمولی از صفر شروع میشود.

print(arr[0:2, 2])
توسعه دهندگان
احمدرضا آهنگریان