Là một phần của hoạt động làm sạch dữ liệu, đôi khi chúng ta cần lấy ra các số nguyên hiện diện trong một danh sách. Trong bài này chúng ta sẽ có một mảng chứa cả float và số nguyên. Chúng ta sẽ loại bỏ các số nguyên khỏi mảng và in ra các float.
Với astype
Hàm astype sẽ được dùng để kiểm tra xem một phần tử từ mảng có phải là số nguyên hay không. Theo đó chúng ta quyết định giữ hoặc loại bỏ phần tử khỏi mảng và lưu vào tập kết quả.
Ví dụ
import numpy as np
# khởi tạo mảng
A_array = np.array([3.2, 5.5, 2.0, 4.1, 5])
print("Mảng cho trước:\n", A_array)
# Chỉ giữ số nguyên
res = A_array[A_array != A_array.astype(int)]
# kết quả
print("Mảng không có số nguyên:\n", res)
Đầu ra
Mảng cho trước: [3.2 5.5 2. 4.1 5.] Mảng không có số nguyên: [3.2 5.5 4.1]
Với equal và mod
Trong cách này chúng ta áp dụng hàm mod cho mỗi phần tử của mảng và kiểm tra kết quả chia có bằng 0 hay không. Nếu kết quả khác 0 thì được coi là float và giữ lại làm kết quả.
Ví dụ
import numpy as np
# khởi tạo mảng
A_array = np.array([3.2, 5.5, 2.0, 4.1, 5])
print("Mảng cho trước:\n", A_array)
# Chỉ giữ số nguyên
res = A_array[~np.equal(np.mod(A_array, 1), 0)]
# kết quả
print("Mảng không có số nguyên:\n", res)
Đầu ra
Mảng cho trước: [3.2 5.5 2. 4.1 5.] Mảng không có số nguyên: [3.2 5.5 4.1]