Array Slicing là gì? Array Slicing trong python numpy có nghĩa là lấy các phần tử trong một khoảng giá trị từ một giá trị index tới một giá trị index khác.
Cú pháp lấy phần tử theo một khoảng giá trị như sau: [start:end].
Cú pháp lấy phần tử theo một khoảng giá trị với các bước(step) giá trị như sau : [start:end:step]
Nếu không truyền vào giá trị bắt đầu (start), thì nó coi giá trị băt đầu là 0.
Nếu không truyền vào giá trị kết thúc(end), nó coi giá trị kết thúc là chiều dài của mảng.
Nếu không truyền giá trị bước (step), nó coi step là 1.
Chúng ta sẽ tìm hiểu về cách lấy phần tử của mảng array trong python numpy sau đây:
Ví dụ lấy các phần tử của mảng từ giá trị index 2 đến giá trị index 6 trong mảng sau :
import numpy as np
array_1 = np.array([1,2,3,4,5,6,7,8,9])
print("Các phần tử từ index 2 đến index 6 là: ",array_1[2:6])
Các phần tử từ index 2 đến index 6 là: [3 4 5 6]
- Chú ý : Kết quả bảo gồm phần tử index bắt đầu nhưng không bao gồm phần tử index kết thúc.
Ví dụ lấy các phần tử của mảng từ giá trị index 3 đến phần tử cuối cùng trong mảng sau :
import numpy as np
array_2 = np.array([1,2,3,4,5,6,7,8,9])
print("Các phần tử từ index 3 đến phần tử cuối cùng là: ", array_2[3:] )
Các phần tử từ index 3 đến phần tử cuối cùng là: [4 5 6 7 8 9]
- Chú ý : Kết quả bảo gồm phần tử index bắt đầu và bao gồm phần tử index kết thúc.
Ví dụ lấy các phần tử của mảng từ bắt đầu đến phần tử thứ index 5 trong mảng sau :
import numpy as np
array_3 = np.array([1,2,3,4,5,6,7,8,9])
print("Các phần tử từ bắt đầu đến phần tử index 5 là: ", array_3[:5] )
Các phần tử từ bắt đầu đến phần tử index 5 là:: [1 2 3 4 5]
- Chú ý : Kết quả của ví dụ trên bao gồm phần tử bắt đầu, nhưng không bao gồm phần tử cuối cùng.
Ngoài cách truy cập tới các phần tử theo chỉ mục index từ trái qua phải (từ vị trí chỉ mục index 0) của numpy, numpy cũng cho phép truy cập tới các phần tử theo chỉ mục index âm từ phải qua trái ( từ chỉ mục index cuối cùng là -1, tiếp đến là -2,…vv.
import numpy as np
array_4 = np.array([1,2,3,4,5,6,7,8,9])
print("Các phần là: ", array_4[-3:-1])
Các phần là: [7 8]
Sử dụng step để xác định bước giá trị để lấy các phần tử trong numpy.
Ví dụ lấy các phần tử từ index 1 đến index 9 với bước giá trị step là 2 của mảng sau:
import numpy as np
array_5 = np.array([1,2,3,4,5,6,7,8,9])
print("Các phần tử là: ", array_5[1:9:2])
Các phần là: [2 4 6 8]
Làm thế nào để lấy giá trị các phần tử của mảng 2 chiều trong một khoảng giá trị index? Ví dụ dưới đây là cách lấy giá trị các phần tử của mảng 2 chiều theo 1 khoảng giá trị index.
import numpy as np
array_2D = np.array([[1,2,3,4,5],[6,7,8,9,10]])
print("Các phần tử là: ", array_2D[1,1:4])
Các phần là: [7 8 9]