Phương thức numpy.can_cast() trả về True nếu việc ép kiểu giữa các kiểu dữ liệu có thể 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 thành. Tham số 3 kiểm soát loại casting được phép: 'no', 'equiv', 'safe', 'same_kind', 'unsafe'.
'no': không được ép kiểu nào.'equiv': chỉ cho phép thay đổi thứ tự byte.'safe': chỉ cho phép ép kiểu bảo toàn giá trị.'same_kind': cho phép ép an toàn hoặc trong cùng loại (ví dụ float64 sang float32).'unsafe': cho phép mọi chuyển đổi dữ liệu.
Các bước thực hiện
Nhập NumPy:
import numpy as np
Kiểm tra can_cast() với các quy tắc khác nhau:
print("Kiểm tra với can_cast() trong NumPy\n")
# Quy tắc 'no'
print("Kết quả...", np.can_cast('i8', 'i8', 'no')) # True
print("Kết quả...", np.can_cast('i8', 'no')) # False
# Quy tắc 'equiv'
print("Kết quả...", np.can_cast('i8', 'equiv')) # True
print("Kết quả...", np.can_cast('i8', 'equiv')) # False
# Quy tắc 'safe'
print("Kết quả...", np.can_cast('i4', 'i8', 'safe')) # True
print("Kết quả...", np.can_cast('i8', 'i4', 'safe')) # False
# Quy tắc 'same_kind'
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind')) # True
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind')) # True
Ví dụ hoàn chỉnh
import numpy as np
print("Kiểm tra với can_cast() trong NumPy\n")
print("Kết quả...", np.can_cast('i8', 'i8', 'no'))
print("Kết quả...", np.can_cast('i8', 'no'))
print("Kết quả...", np.can_cast('i8', 'equiv'))
print("Kết quả...", np.can_cast('i8', 'equiv'))
print("Kết quả...", np.can_cast('i4', 'i8', 'safe'))
print("Kết quả...", np.can_cast('i8', 'i4', 'safe'))
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind'))
print("Kết quả...", np.can_cast('i8', 'i4', 'same_kind'))
Kết quả đầu ra
Kiểm tra với can_cast() trong NumPy
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... False
Kết quả... True
Kết quả... True