Lập chỉ mục Boolean
Bài học 14 trên 18 trong khóa học Nền tảng NumPy của Coddy.
Numpy có tùy chọn chọn phần tử theo điều kiện.
Dùng cú pháp sau: ary[ary operator number]
ary[ary > 5]ary[ary == 5]ary[ary <= 5]- vân vân
Ví dụ 1
Lấy tất cả các số nhỏ hơn 5
x = np.array([1, 5, 2, 4, 9 ,10 ,13, 7])
x[x < 5]
>>> [1, 2, 4]Ví dụ 2
Điều gì xảy ra với các chiều lớn hơn?
x = np.array([[1, 5], [2, 4], [9 ,10] ,[13, 7]])
x[x < 5] # --> [1, 2, 4]
x[x >= 5] # --> [5, 9, 10, 13, 7]
x[x == 6] # --> []Bạn thấy chưa? Kết quả là một mảng duy nhất chứa tất cả các phần tử thỏa mãn điều kiện.
Khi áp dụng điều kiện lên x, kết quả là một mảng boolean cho biết tại mỗi chỉ số, phần tử có thỏa mãn điều kiện hay không.
Ví dụ 3
Lần này, ta sẽ xem điều gì xảy ra nếu chỉ dùng điều kiện mà không có dấu ngoặc [].
x = np.array([1, 2, 3])
x < 2
>>> [True, False, False]Kết quả là một danh sách gồm tất cả các chỉ số thỏa mãn điều kiện.
Ví dụ 4
Thay vì đặt điều kiện bên trong dấu ngoặc [], ta có thể đặt một danh sách giá trị boolean, giống như kết quả ở ví dụ trước, để lấy các phần tử mong muốn.
x = np.array([8, 4, 10])
x[[False, True, False]] # --> [4]
x[[True, True, False]] # --> [8, 4]
x[[True, False, True]] # --> [8, 10]
x[[False, False, False]] # --> []
Ví dụ 3 và 4 giải thích vì sao x[x < 5] hoạt động.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Thử thách
DễViết một hàm có tên small_five, nhận một danh sách và trả về tổng của tất cả phần tử nhỏ hơn 5.
Tự làm thử
import numpy as np
def small_five(lst):
# Complete your codeTất cả bài học trong Nền tảng NumPy
3Lập chỉ mục mảng NumPy
Lập chỉ mục cơ bảnCắt látLập chỉ mục mảngLập chỉ mục theo chiềuLập chỉ mục BooleanLập chỉ mục với nhiều điều kiệnTự luyện tập: Trình biên dịch Python online