Menu
CoddyTech

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.

quiz iconTự kiểm tra

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 độ.

quiz iconTự kiểm tra

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 độ.

quiz iconTự kiểm tra

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 độ.

challenge icon

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 code

Tất cả bài học trong Nền tảng NumPy

Tự luyện tập: Trình biên dịch Python online