Phương thức numpy.can_cast() trả về True nếu ép kiểu giữa các kiểu dữ liệu có thể xảy ra theo quy tắc casting. Tham số thứ nhất là kiểu dữ liệu hoặc mảng để ép từ. Tham số thứ hai là kiểu dữ liệu để ép đến.
Các bước thực hiện
Trước tiên, nhập thư viện cần thiết:
import numpy as np
Sử dụng can_cast() để kiểm tra ép kiểu giữa các kiểu dữ liệu:
print("Kiểm tra với can_cast() trong NumPy\n")
print("Kết quả...", np.can_cast(np.int32, np.int64))
print("Kết quả...", np.can_cast(np.float64, complex))
print("Kết quả...", np.can_cast(complex, float))
print("Kết quả...", np.can_cast('i8', 'f8'))
print("Kết quả...", np.can_cast('i8', 'f4'))
print("Kết quả...", np.can_cast('i4', 'S4'))
Ví dụ hoàn chỉnh
import numpy as np
# numpy.can_cast() trả về True nếu ép kiểu giữa kiểu dữ liệu xảy ra theo quy tắc casting.
# Tham số 1: kiểu dữ liệu hoặc mảng để ép từ.
# Tham số 2: kiểu dữ liệu để ép đến.
print("Kiểm tra với can_cast() trong NumPy\n")
print("Kết quả...", np.can_cast(np.int32, np.int64))
print("Kết quả...", np.can_cast(np.float64, complex))
print("Kết quả...", np.can_cast(complex, float))
print("Kết quả...", np.can_cast('i8', 'f8'))
print("Kết quả...", np.can_cast('i8', 'f4'))
print("Kết quả...", np.can_cast('i4', 'S4'))
Kết quả đầu ra
Kiểm tra với can_cast() trong NumPy
Kết quả... True
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... False
Kết quả... False
Giải thích:
int32 → int64: True (mở rộng an toàn)float64 → complex: True (thực → phức an toàn)complex → float: False (mất phần ảo, không an toàn)int64 (i8) → float64 (f8): True (an toàn)int64 (i8) → float32 (f4): False (có thể mất độ chính xác)int32 (i4) → string (S4): False (không phải ép kiểu số)