- Bài 1: Giới thiệu và thiết lập môi trường
- Bài 2: Ndarray Object
- Bài 3: Kiểu dữ liệu
- Bài 4: Thuộc tính của Mảng
- Bài 5: Quy trình tạo mảng
- Bài 6: Mảng từ dữ liệu có sẵn
- Bài 7: Mảng từ dãy số
- Bài 8: Index & Slice
- Bài 9: Advanced Indexing
- Bài 10: Broadcast
- Bài 11: Duyệt Mảng
- Bài 12: Toán tử nhị phân
- Bài 13: Hàm String
- Bài 14: Hàm Toán Học
- Bài 15: Các phép tính toán học
- Bài 16: Hàm thống kê
- Bài 17: Sort, Search & Counting
- Bài 18: Chuyển đổi Byte
- Bài 19: Copy & View
- Bài 20: Ma trận
- Bài 21: Đại số tuyến tính
- Bài 22: Matplotlib
- Bài 23: Biểu đồ sử dụng Matplotlib
- Bài 24: I/O trong numpy
Bài 8: Index & Slice - Numpy trong Python
Đăng bởi: Admin | Lượt xem: 2821 | Chuyên mục: AI
Nội dung của ndarray có thể được truy cập và sửa đổi bằng index hoặc slice, giống như các đối tượng chứa trong Python.
Như đã đề cập trước đó, các mục trong đối tượng ndarray tuân theo chỉ mục dựa trên số không. Ba loại phương pháp lập chỉ mục có sẵn - field access, basic slicing và advanced indexing.
Slice cơ bản là một phần mở rộng của khái niệm cơ bản của Python về cắt thành n kích thước. Một đối tượng slice trong Python được xây dựng bằng cách cung cấp các tham số bắt đầu, dừng và bước cho hàm slice tích hợp sẵn. Đối tượng slice này được chuyển đến mảng để trích xuất một phần của mảng.
Ví dụ 1 :
import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print a[s]
Kết quả :
[2 4 6]
Trong ví dụ trên, một đối tượng ndarray được chuẩn bị bởi hàm arange (). Sau đó, một object slice được xác định với các giá trị bắt đầu, dừng và bước tương ứng là 2, 7 và 2. Khi object slice này được chuyển tới ndarray, một phần của nó bắt đầu với chỉ mục 2 đến 7 với bước 2 được cắt.
Cũng có thể thu được kết quả tương tự bằng cách đưa các tham số cắt phân tách bằng dấu hai chấm: (start: stop: step) trực tiếp cho đối tượng ndarray.
Ví dụ 2 :
import numpy as np
a = np.arange(10)
b = a[2:7:2]
print b
Kết quả :
[2 4 6]
Nếu chỉ đặt một tham số, một mục tương ứng với chỉ mục sẽ được trả về. Nếu một tham số: được chèn trước nó, tất cả các mục từ chỉ mục đó trở đi sẽ được trích xuất. Nếu hai tham số (với: giữa chúng) được sử dụng, các mục giữa hai chỉ mục (không bao gồm chỉ mục dừng) với bước một mặc định sẽ được cắt.
Ví dụ 3 :
# slice single item
import numpy as np
a = np.arange(10)
b = a[5]
print b
Kết quả :
5
Ví dụ 4 :
# slice items starting from index
import numpy as np
a = np.arange(10)
print a[2:]
Kết quả :
[2 3 4 5 6 7 8 9]
Ví dụ 5
# slice items between indexes
import numpy as np
a = np.arange(10)
print a[2:5]
Kết quả :
[2 3 4]
Mô tả trên cũng áp dụng cho ndarray đa chiều.
Ví dụ 6 :
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print a
# slice items starting from index
print 'Now we will slice the array from the index a[1:]'
print a[1:]
Kết quả :
[[1 2 3]
[3 4 5]
[4 5 6]]
Now we will slice the array from the index a[1:]
[[3 4 5]
[4 5 6]]
Slicing cũng có thể bao gồm dấu chấm lửng (…) để tạo một bộ lựa chọn có cùng độ dài với kích thước của một mảng. Nếu dấu chấm lửng được sử dụng ở vị trí hàng, nó sẽ trả về một mảng ndarray bao gồm các mục trong hàng.
Ví dụ 7 :
# array to begin with
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print 'Our array is:'
print a
print '\n'
# this returns array of items in the second column
print 'The items in the second column are:'
print a[...,1]
print '\n'
# Now we will slice all items from the second row
print 'The items in the second row are:'
print a[1,...]
print '\n'
# Now we will slice all items from column 1 onwards
print 'The items column 1 onwards are:'
print a[...,1:]
Kết quả :
Our array is:
[[1 2 3]
[3 4 5]
[4 5 6]]
The items in the second column are:
[2 4 5]
The items in the second row are:
[3 4 5]
The items column 1 onwards are:
[[2 3]
[4 5]
[5 6]]
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Giới thiệu và thiết lập môi trường
- Bài 2: Ndarray Object
- Bài 3: Kiểu dữ liệu
- Bài 4: Thuộc tính của Mảng
- Bài 5: Quy trình tạo mảng
- Bài 6: Mảng từ dữ liệu có sẵn
- Bài 7: Mảng từ dãy số
- Bài 8: Index & Slice
- Bài 9: Advanced Indexing
- Bài 10: Broadcast
- Bài 11: Duyệt Mảng
- Bài 12: Toán tử nhị phân
- Bài 13: Hàm String
- Bài 14: Hàm Toán Học
- Bài 15: Các phép tính toán học
- Bài 16: Hàm thống kê
- Bài 17: Sort, Search & Counting
- Bài 18: Chuyển đổi Byte
- Bài 19: Copy & View
- Bài 20: Ma trận
- Bài 21: Đại số tuyến tính
- Bài 22: Matplotlib
- Bài 23: Biểu đồ sử dụng Matplotlib
- Bài 24: I/O trong numpy