NumPy Array Slicing

برش دادن آرایه‌ها

منظور از برش دادن (slicing) در پایتون، برداشتن عناصر از یک ایندکس داده شده تا ایندکس داده شده بعدی است.

به جای ایندکس دهی به مانند مبحث قبلی، برش دادن را به صورت [start:end] به آرایه می‌دهیم.

البته می‌توانیم گام را نیز برای آن تعیین کنیم: [start:end:step]

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

اگر ایندکس پایان را به آن ندهیم، به صورت پیش‌فرض مقدار آن طول آرایه در آن بُعد در نظر گرفته خواهد شد.

اگر مقدار گام را به آن ندهیم، به صورت پیش‌فرض مقدار آن یک در نظر گرفته خواهد شد.


import numpy as np

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

print(arr[1:5])

خروجی:

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

در مثال بعدی آرایه را از ایندکس شماره 4 تا آخر آرایه برش می‌دهیم.


import numpy as np

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

print(arr[4:])

خروجی:

در کد زیر هم آرایه را از ابتدا تا ایندکس شماره 4 (که خودش را شامل نمی‌شود) برش می‌دهیم.


import numpy as np

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

print(arr[:4])

خروجی:

برش دادن با استفاده از ایندکس دهی منفی

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


import numpy as np

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

print(arr[-3:-1])

خروجی:

گام

با استفاده از مقدار گام می‌توان گام برش را تعیین کرد.


import numpy as np

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

print(arr[1:5:2])

خروجی:

در مثال زیر عناصر را به صورت یک در میان برش می‌دهیم.


import numpy as np

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

print(arr[::2])

خروجی:

برش دادن آرایه‌های دو بعدی

از عنصر دوم، عتاصر را از ایندکس 1 تا 4 (که 4 شامل نمی‌شود) برش می‌دهیم.


import numpy as np

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

print(arr[1, 1:4])

خروجی:

از هر دو عنصر ایندکس شماره 2 را برمی‌گردانیم.


import numpy as np

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

print(arr[0:2, 2])

خروجی:

از هر دو عنصر از ایندکس‌های 1 تا 4 (4 شامل نمی‌شود) را برش می‌دهیم. نتیجه یک آرایه دو بعدی خواهد بود.


import numpy as np

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

print(arr[0:2, 1:4])

خروجی: