آموزش برش زدن آرایه(Slicing) در NumPy
برش زدن آرایهها
برش زدن در پایتون به معنای انتقال عناصر از یک اندیس مشخص به اندیس مشخص دیگر است.
ما به جای اندیس، برش(slice) را به این صورت تعیین میکنیم: [start:end].
ما همچنین میتوانیم گام(step) را هم مشخص کنیم: [start:end:step].
اگر start را مشخص نکنیم، 0 در نظر گرفته خواهد شد.
اگر end را مشخص نکنیم، برابر با طول آرایه در آن بُعد در نظر گرفته خواهد شد.
اگر گام(step) را مشخص نکنیم، برابر با 1 در نظر گرفته خواهد شد.
مثال شماره 1
برش زدن عناصر از اندیس 1 تا اندیس 5 در آرایهی زیر:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5])
نتیجه:
[2 3 4 5]
امتحان کنیدنکته: نتیجهی برش زدن، شامل خود اندیس start نیز میشود اما شامل خود اندیس end نمیشود.
مثال شماره 2
برش زدن عناصر از اندیس 4 تا انتهای آرایه:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[4:])
نتیجه:
[5 6 7]
امتحان کنیدمثال شماره 3
برش زدن عناصر از ابتدا تا اندیس 4(اما شامل خود آن نمیشود):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[:4])
نتیجه:
[1 2 3 4]
امتحان کنیدبرش زدن منفی
برای رجوع به یک اندیس از انتها، از عملگر منفی استفاده کنید:
مثال شماره 4
برش از اندیس 3 از انتها، تا اندیس 1 از انتها:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[-3:-1])
نتیجه:
[5 6]
امتحان کنیداستفاده از گام(step)
با استفاده از مقدار گام(step) میتوانیم گام(قدر نسبت) برش را مشخص کنیم:
مثال شماره 5
شروع از اندیس 1، یعنی از عدد 2، و برگرداندن عناصر از عدد 2 تا عدد 5 (شامل عدد 6 نمی شود) با گام 2:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5:2])
نتیجه:
[2 4]
امتحان کنیدمثال شماره 6
برگرداندن عناصر از کل آرایه با گام یا قدرنسبت 2:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[::2])
نتیجه:
[1 3 5 7]
امتحان کنیدبرش زدن آرایههای دوبعدی
مثال شماره 7
برش زدن عناصر از اندیس 1 تا اندیس 4(شامل خود 4 نمیشود) از عنصر دوم(یعنی از آرایه سمت راست که اندیس آن 1 است):
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[1, 1:4])
نتیجه:
[7 8 9]
امتحان کنیدنکته: به یاد داشته باشید که اندیس عنصر دوم، 1 است.
مثال شماره 8
برگرداندن اندیس 2 از هردو عنصر:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 2])
نتیجه:
[3 8]
امتحان کنیدمثال شماره 9
برش زدن اندیس 1 تا اندیس 4(شامل خود 4 نمی شود) از هردو عنصر(0:2 نیز شامل خود 2 نمیشود)؛ این باعث می شود یک آرایهی دوبعدی برگردانده شود:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 1:4])
نتیجه:
[[2 3 4]
[7 8 9]]
امتحان کنید
منبع: www.w3schools.com/python/numpy
- بازدید: 50
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.